JAVA之数组和集合的相互转换

た 入场券 2022-12-03 08:52 283阅读 0赞
  1. import java.util.Arrays;
  2. import java.util.List;
  3. import java.util.stream.Collectors;
  4. public class Main {
  5. public static void main(String[] args) {
  6. int[] data = {4, 5, 3, 6, 2, 5, 1};
  7. // int[] 转 List<Integer>
  8. List<Integer> list1 = Arrays.stream(data).boxed().collect(Collectors.toList());
  9. // Arrays.stream(arr) 可以替换成IntStream.of(arr)
  10. // 1.使用Arrays.stream将int[]转换成IntStream
  11. // 2.使用IntStream中的boxed()装箱,将IntStream转换成Stream<Integer>
  12. // 3.使用Stream的collect(),将Stream<T>转换成List<T>,返回List<Integer>
  13. // int[] 转 Integer[]
  14. Integer[] integers1 = Arrays.stream(data).boxed().toArray(Integer[]::new);
  15. // 1.使用Arrays.stream将int[]转换成IntStream
  16. // 2.使用IntStream中的boxed()装箱,将IntStream转换成Stream<Integer>
  17. // 3.使用Stream的toArray,传入IntFunction<A[]> generator,返回Integer[]
  18. // 不传IntFunction<A[]> generator,默认返回Object[]
  19. // List<Integer> 转 Integer[]
  20. Integer[] integers2 = list1.toArray(new Integer[0]);
  21. // 调用toArray,传入T[] a,返回Integer[]
  22. // List<Integer> 转 int[]
  23. int[] arr1 = list1.stream().mapToInt(Integer::valueOf).toArray();
  24. // 想要转换成int[]类型,先转成IntStream
  25. // 通过mapToInt()把Stream<Integer>调用Integer::valueOf来转成IntStream
  26. // 而IntStream中默认toArray()转成int[]
  27. // Integer[] 转 int[]
  28. int[] arr2 = Arrays.stream(integers1).mapToInt(Integer::valueOf).toArray();
  29. // 先将Integer[]转成Stream<Integer>,再转成IntStream
  30. // Integer[] 转 List<Integer>
  31. List<Integer> list2 = Arrays.asList(integers1);
  32. String[] strings1 = {"a", "b", "c"};
  33. // String[] 转 List<String>
  34. List<String> list3 = Arrays.asList(strings1);
  35. // List<String> 转 String[]
  36. String[] strings2 = list3.toArray(new String[0]);
  37. }
  38. }

发表评论

表情:
评论列表 (有 0 条评论,283人围观)

还没有评论,来说两句吧...

相关阅读

    相关 集合和数相互转换

    集合和数组相互转换 很多时候API的方法只支持集合或数组,比如适配器类中的数据只支持集合,这时候我们就要把数组转换集合。 集合转换成数组 可以把String换成其