Java 数组与ArrayList的互转
  TEZNKK3IfmPf 2023年11月15日 82 0

数组 转 List

数组转其他,都要借助 Arrays工具类:

  • 如果是 引用类型数组 ,则可以直接Arrays.asList
  • 如果是 基本类型数组 ,则要转为 Arrays.stream

引用类型数组 Integer[] 转 List

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

基本类型数组 int[] 转 List

  1. 使用 Arrays.streamint[]转换成 IntStream
  2. 使用 IntStream中的 boxed()装箱。将 IntStream转换成 Stream<Integer>
  3. 使用 Streamcollect(),将 Stream<T>转换成 List<T>,因此正是 List<Integer>
int[] array = new int[]{1,2,3};
// Arrays.stream(arr) 可以替换成IntStream.of(arr)
List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());

基本类型数组 int[] 转 引用类型数组 Integer[]

int[] array = new int[]{1,2,3};
// 使用Stream的toArray,传入IntFunction<A[]> generator
// 不然默认是Object[]
Integer[] integer = Arrays.stream(array).boxed().toArray(Integer[]::new);

引用类型数组 Integer[] 转 基本类型数组 int[]

Integer[] integer = new Integer[]{1,2,3};
int[] array = Arrays.stream(integer).mapToInt(Integer::intValue).toArray();

List 转 数组

List 转 引用类型数组Integer[]

List<Integer> list = new ArrayList<>();
Integer[] integers = list.toArray(new Integer[0]);

List 转 基本类型数组 int[]

List<Integer> list = new ArrayList<>();
int[] array = list.stream().mapToInt(Integer::intValue).toArray();
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   23天前   50   0   0 java
  TEZNKK3IfmPf   2024年05月31日   55   0   0 java
TEZNKK3IfmPf