一、int[ ] 转成 Integer[ ], List< Intege r>, List< String >
(1)int[ ] 转成 Integer[ ]
Integer[] integers = Arrays.stream(ints).boxed().toArray(Integer[]::new);
(2)int[ ] 转成 List< Integer >
List<Integer> integerList = Arrays.stream(ints).boxed().collect(Collectors.toList());
(3)int[ ] 转成 List< String >
List<String> strList = Arrays.stream(ints).boxed()
// 一定要boxed.map(String::valueOf).collect(Collectors.toList());
// 转成List<Integer> 然后再用map转成String,最后用collect转成List<String>
二、Integer[ ] 转成 int[ ] , List< Integer>, List< String >
(1) Integer[ ] 转成 int[ ]
int[] ints = Arrays.stream(integers).mapToInt(Integer::valueOf).toArray();
(2) Integer[] 转成 List< Integer > 该list不能add, remove操作
List<Integer> integerList = Arrays.asList(integers);
(3) Integer[] 转成 List< Integer > 该list支持所有操作
List<Integer> integerList1 = new ArrayList<>(Arrays.asList(integers));
(4)Integer[] 转成 List< String >
List<String> strList = Arrays.stream(integers).map(String::valueOf) .collect(Collectors.toList());
三、List< Integer > 转成 int[ ], Integer[ ], List< String >
(1)List< Integer > 转成 int[ ]
int[] ints = list.stream().mapToInt(Integer::valueOf).toArray(); // 转成流 再转成Integer[] 再转int
(2)List< Integer > 转成 Integer[ ]
Integer[] integers1 = list.toArray(new Integer[0]);
Integer[] integers2 = list.stream().toArray(Integer[]::new);
(3)List< Integer > 转成 List< String >
List<String> strList = list.stream().map(String::valueOf).collect(Collectors.toList());
四、List< String > 转成 int[ ], Integer[ ], List< List >
(1)List< String > 转成 int[ ]
int[] ints = strList.stream().mapToInt(Integer::valueOf).toArray();
// 和List<Integer>转换一样
(2)List< String > 转成 Integer[ ]
Integer[] integers =strList.stream().mapToInt(Integer::valueOf).boxed().toArray(Integer[]::new);
// 和List<Integer>转换一样
(3)List< String > 转成 List< Integer >
List<Integer> integerList = strList.stream().mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
总结一下注意要点:
- int[] 要转成List对象 ,一定要用boxed,转成Integer
Arrays.stream(ints).boxed().map(xxx).collection();
- List 互相转换 List ,string转Integer一定要在mapToInt后,用boxed(),转成Integer
List<String> strList = list.stream().map(String::valueOf).collect(Collectors.toList());
List<Integer> integerList = strList.stream().mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
3.其他的话,就用stream.toArray()是返回T[] , stream.collect()是返回Collection对象(list, set等)