Java StreamList、Integer[]、int[] 的相互转换
不得不说Java8的新特性Stream流对数据的处理、转换十分友好,代码简洁高效,业务场景中经常会遇到需要将集合、数组进行转换,下面列举几个常见转换形式
1.int[]类型
int[] ==> Integer[]
-
//int[] => IntStream => Stream<Integer> => Integer[]
-
Integer[] vinteger = Arrays.stream(vint).boxed().toArray(Integer[]::new);
- Arrays.stream(vint) 将基本数据类型数组转换成基本数据类型流 int[] => IntStream
- boxed() 装箱函数,将基本数据类型流转换成对象流 IntStream => Stream<Integer>
- toArray(Integer[]::new)方 将对象流转换为对象数组 Stream<Integer> => Interger[]
int[] ==> List<Integer>
List<Integer> list = Arrays.stream(vint).boxed().collect(Collectors.toList());
- collect(Collectors.toList()) 将对象流收集为集合,这里 collect 方法里传入的是一个收集器 (Collector),它通过 Collectors.toList() 产生。
2.Integer[]类型
Integer[] ==> int[]
-
//Integer[] => Stream<Integer> => IntStream=> int[]
-
int[] vint = Arrays.stream(vinteger).mapToInt(Integer::valueOf).toArray();
- Arrays.stream(vinteger) 将对象数组转换成对象流 Integer[] => Stream<Integer>
- mapToInt(Integer::valueOf) 将对象流转换成基本类型流。Stream<Integer> => IntStream
- toArray() 将基本类型流转换为基本类型数组。IntStream => int[]
注意点: map函数表示映射每个元素做同样操作,而mapToInt函数是表示将每个元素转换成int。
Integer[] ==> List<Integer>
List<Integer> list = Arrays.asList(vinteger);
- asList方法将数组转换成集合
- asList 返回的是 Arrays 里的静态私有类 ArrayList,而不是 java.util 里的 ArrayList,它无法自动扩容。
无法扩容,就有存在限制了,如果业务场景需要将集合增加元素,即需扩容的情况下,可以重新实例化一个ArrayList,使其可以自动扩容
List<Integer> list = new ArrayList<>(Arrays.asList(vinteger));
3.List<Integer>类型
List<Integer> ==> int[]
-
//List<Integer> => Stream<Integer> => IntStream => int[]
-
int[] vint = list.stream().mapToInt(Integer::valueOf).toArray();
- stream方法将集合转换为对象流 List<Integer> => Stream<Integer>
List<Integer> ==> Integer[]
Integer[] vinteger = list.toArray(new Integer[list.size()]);
- 需要注意,toArray方法中的参数传递一个数组,即需要归定长度,则可以通过list.size()定义。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfajjg
系列文章
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01