栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中 数组与集合,集合与集合之间的转换

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中 数组与集合,集合与集合之间的转换

这里介绍的主要是调用Arrays、Collections工具类和stream 流的方式

数组转List

这里就以数组转List为例进行介绍

1、通过Arrays.asList(你想要转换的数组)

但是通过这一点转换出来的list集合是不能进行增删的,只能修改和删除。

2、通过ArrayList构造器转换

还是第一条的list集合,我们可以通过new ArrayList(Arrays.asList(xxx))达到转化效果。

此时的list集合是可以进行增删改查的

3、通过stream流的方式
//这里我们就以int型数组为例
int[] nums = {1,2,3,4}
List list = Arrays.stream(nums).boxed().collect(Collectors.toList);

//如果是String类型数组就使用
String[] strs = {"123","432","789"};
List list= Stream.of(arrays).collect(Collectors.toList());
List转数组
int[] intArr = list.stream().mapToInt(Integer::intValue).toArray(); //list转数组
集合之间互相转换

这里就主要分享一下自己stream的使用,通过集合的构造方法来进行转换这里就不多加赘述啦

1、List与Set之间转换

例如我们通过数据库查询到一个订单号集合set的时候,需要将其转换为list,我们可以

List collect = orderNoSet.stream().collect(Collectors.toList());

但是在很多也业务开发的时候,并不是这么简单的转换。比方说有一个Order订单类,我们通过数据库查询返回了一个该类的List集合,那假如我们想得到一个该类的id的set集合怎么做呢??不会还真有人傻傻遍历一边再将id装到新集合中吧~

其实我们可以这样,通过map来进行一个匹配选择

//从数据库中拿到实例对象集合
List orderList = orderMapper.selectByUid(uid);

//转换
Set orderNoSet = orderList.stream().map(Order::getOrderNo).collect(Collectors.toSet());

2、List和Map之间的转换

还是接着上面的问题,那如果我想从list中抽出一个map集合呢?

一个订单号就对应一个订单实例对象怎么实现

也很简单,我们通过调用Collectors的toMap方法

Map orderMap=orderList.stream()
                .collect(Collectors.toMap(Order::getOrderId,order -> order));

PS:说到这里还想分享一下filter方法的应用

还是以order集合为例,假如说Order类中有一个属性tag(Boolean类型)表示订单是否生效,那我们想要过滤出生效的订单

//这里的list表示包含所有order实例对象的集合
List orderList = list.stream()
                .filter(Order::getOrderSelected)
                .collect(Collectors.toList());

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/851541.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号