(各种数组之间的互相转换)int 数组与List互相转换,object数组转换int数组

Stream流之List、Integer[]、int[]相互转化

一、int[ ]

1.1、int[ ] 转 Integer[ ]

public static void main(String[] args) {
		int[] arr = { 1, 2, 3, 4, 5 };
		List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
		list.forEach(e -> System.out.print(e + " "));
	}

Arrays.stream(arr) 将int数组转化为IntStream
bosed() 将每一个整数进行装箱,把IntStream 转换成了 Stream< Integer >
collect(Collectors.toList()) 将对象流收集为集合,转化为 List< Integer >

1.2、int[ ] 转 List< Integer >

Integer[] integers = Arrays.stream(arr).boxed().toArray(Integer[]::new);

Arrays.stream(arr) 还是转化为流
boxed() 装箱,将基本类型流转换为对象流
toArray(Integer[ ]::new) 将对象流转换为对象数组

二、Integer[ ]

2.1、Integer[ ]转 int[ ]

 	int[] arr= Arrays.stream(integers).mapToInt(Integer::valueOf).toArray();

mapToInt(Integer::valueOf) 将对象流转化为基本类型流
toArray() 转化为int数组*

2.2、Integer[ ]转 List< Integer >

	Integer[] integers = {1,2,3,4,5};
	List<Integer> list = Arrays.asList(integers); 

三、List< Integer >

3.1、List< Integer > 转 Integer[ ]

	Integer[] integers = list.toArray(new Integer[list.size()]);

3.2、List< Integer > 转 int[ ]

int[] arr2 = list.stream().mapToInt(Integer::valueOf).toArray();

// int[] 转 List

int[] data = {4, 5, 3, 6, 2, 5, 1};

List list1 = Arrays.stream(data).boxed().collect(Collectors.toList());

// Arrays.stream(arr) 可以替换成IntStream.of(arr)。

// 1.使用Arrays.stream将int[]转换成IntStream。

// 2.使用IntStream中的boxed()装箱。将IntStream转换成Stream

// 3.使用Stream的collect(),将Stream转换成List,因此正是List

// int[] 转 Integer[]

Integer[] integers1 = Arrays.stream(data).boxed().toArray(Integer[]::new);

// 前两步同上,此时是Stream。 // 然后使用Stream的toArray,传入IntFunction<A[]> generator。 // 这样就可以返回Integer数组。 // 不然默认是Object[]。

// List 转 Integer[]

Integer[] integers2 = list1.toArray(new Integer[0]);
// 调用toArray。传入参数T[] a。这种用法是目前推荐的。 // List转String[]也同理。

// List 转 int[]

int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray();
// 想要转换成int[]类型,就得先转成IntStream。
// 这里就通过mapToInt()把Stream调用Integer::valueOf来转成IntStream
// 而IntStream中默认toArray()转成int[]。

// Integer[] 转 int[]

int[] arr2 = Arrays.stream(integers1).mapToInt(Integer::valueOf).toArray();
// 思路同上。先将Integer[]转成Stream,再转成IntStream。

// Integer[] 转 List

List list2 = Arrays.asList(integers1);
// 最简单的方式。String[]转List也同理。

// String[] 转 List

// 同理 String[] strings1 = {"a", "b", "c"};
List list3 = Arrays.asList(strings1);

// List 转 String[]

String[] strings2 = list3.toArray(new String[0]);

posted @   没有烦恼的猫猫  阅读(343)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示