数组与List集合的互转及流的使用

Java实战:数组与List集合的互转及流的使用

在Java编程中,数组和集合(List等)是两种常用的数据结构,它们各有优势:数组性能高效但长度固定,集合功能丰富且大小可变。本文通过一个简单的示例,展示如何将数组转换为List集合,以及如何反向操作,将List集合转换回数组。同时,我们还会利用Java 8引入的Stream API来遍历这些数据结构中的元素。

1. 数组转List集合

步骤解析

假设我们有一个整型数组 intArray,包含一些基本整数值。我们的目标是将其转换为一个ArrayList以便于进行更灵活的操作。

  • 第一步:使用 Arrays.stream(intArray) 将数组转换为 IntStream 流。

  • 第二步:调用 boxed() 方法,这会将 IntStream 中的每个基本类型整数装箱为 Integer 对象,形成一个 Stream。

  • 第三步:通过 toArray(Integer[]::new) 将装箱后的流转换为 Integer 类型的数组,这里使用构造器引用简化代码。

  • 第四步:利用 Arrays.asList(…) 将数组转换为 List。

  • 最后:通过 new ArrayList<>(…) 创建一个新的 ArrayList,并以转换后的 List 初始化它。

    示例代码

int[] intArray = {1, 2, 3, 4, 5};
List<Integer> list = new ArrayList<>(Arrays.asList(Arrays.stream(intArray).boxed().toArray(Integer[]::new)));
遍历List并打印

接着,我们使用 list.stream().forEach(System.out::println); 来遍历并打印List中的每一个元素,展示了Stream API简洁的遍历方式。

2.List集合转数组

实现过程

当需要将处理过的List数据结构转换回数组时,可以利用 toArray(T[] a) 方法。为了确保转换后的数组类型正确,我们传入一个指定类型的空数组作为参数。
示例代码

Integer[] intArray2 = list.toArray(new Integer[0]);

将整型数组intArray2转换成流,并对每个元素调用System.out::println方法进行打印

Arrays.stream(intArray2).forEach(System.out::println);
完整示例代码
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArrayToListDemo {
    public static void main(String[] args) {
        // 1. 数组转List集合
        int[] intArray = {1, 2, 3, 4, 5};
        List<Integer> list = new ArrayList<>(Arrays.asList(Arrays.stream(intArray).boxed().toArray(Integer[]::new)));
        list.stream().forEach(System.out::println);

        // 2. 将List集合转成数组
        System.out.println("将集合转成数组");
        Integer[] intArray2 = list.toArray(new Integer[0]);
        Arrays.stream(intArray2).forEach(System.out::println);
    }
}

通过上述示例,我们不仅学习了数组与List之间转换的方法,还实践了Java 8 Stream API的便捷用法,这对于提升编码效率和代码可读性大有裨益。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艳哥不秃头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值