int[ ]、Integer[ ]、List、List相互轉化

一、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());

總結一下注意要點:

  1. int[] 要轉成List對象 ,一定要用boxed,轉成Integer
Arrays.stream(ints).boxed().map(xxx).collection();
  1. 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等)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章