陣列間相互轉換 int[]轉list
阿新 • • 發佈:2021-10-09
各陣列間相互轉換:
int[] data = {1, 2, 3, 4, 5, 6, 7};
1.int[] 轉換 List<Integer>
List<Integer> lists = Arrays.stream(data).boxed().collect(Collectors.toList());
(1).Arrays.stream(arr) 可以替換成IntStream.of(arr)。
(2).使用Arrays.stream將int[]轉換成IntStream。
(3).使用IntStream中的boxed()裝箱。將IntStream轉換成Stream<Integer>。
(4).使用Stream的collect(),將Stream<T>轉換成List<T>,因此正是List<Integer>。
2.int[] 轉換 Integer[]
Integer[] integers = Arrays.stream(data).boxed().toArray(Integer[]::new);
(1).前兩步同上,此時是Stream<Integer>。
(2).然後使用Stream的toArray,傳入IntFunction<A[]> generator。
(3).這樣就可以返回Integer陣列。
(4).不然預設是Object[]。
3.List<Integer> 轉換 Integer[]
Integer[] integers = list.toArray(new Integer[0]);
(1).呼叫toArray。傳入引數T[]。這種用法是目前推薦的。
(2).List<String>轉String[]也同理。
4.List<Integer> 轉換 int[]
int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray();
(1).想要轉換成int[]型別,就得先轉成IntStream。
(2).這裡就通過mapToInt()把Stream<Integer>呼叫Integer::valueOf來轉成IntStream
(3).而IntStream中預設toArray()轉成int[]。
5.Integer[] 轉換 int[]
int[] arr = Arrays.stream(integers).mapToInt(Integer::valueOf).toArray();
(1).思路同上。先將Integer[]轉成Stream<Integer>,再轉成IntStream。
6.Integer[] 轉換 List<Integer>
List<Integer> lists = Arrays.asList(integers);
(1).最簡單的方式。String[]轉換List<String>也同理。
//String 轉換
String[] strings = {"a", "b", "c"};
7.String[] 轉換 List<String>
List<String> list = Arrays.asList(strings1);
8.List<String> 轉換 String[]
String[] strings = list.toArray(new String[0]);