行业资讯 2025年08月6日
0 收藏 0 点赞 911 浏览 1358 个字
摘要 :

文章目录 1.将数组转换为不可修改列表 1.1. 使用List.of() – Java 9 1.2. 使用Collections.unmodifiableList() – Java 8 1.3. 使用Java 8流 2.将数组转换……




  • 1.将数组转换不可修改列表
    • 1.1. 使用List.of() – Java 9
    • 1.2. 使用Collections.unmodifiableList() – Java 8
    • 1.3. 使用Java 8流
  • 2.将数组转换为不可变列表
  • 3. 将数组转换为可变列表
    • 3.1. 使用Arrays.asList()
    • 3.2. 使用Guava的Lists.newArrayList()

    学习在Java中将数组转换为列表的不同和有用的方法。在这个示例中,我们将使用Java 8的类和Google Guava库来从给定数组的元素创建一个ArrayList。

    1.将数组转换为不可修改列表

    如果你想创建一个由数组元素支持的不可修改列表实例,请按照以下方法操作。我们无法在不可修改列表中添加或删除新对象,但我们可以使用对象引用修改其中存储的对象。

    1.1. 使用List.of() – Java 9

    自Java 9以来,我们可以使用List.of()方法来返回一个包含数组元素的不可修改列表。

    List<String> namesList = List.of(namesArray);
    

    1.2. 使用Collections.unmodifiableList() – Java 8

    在Java 8之前,使用Collections.unmodifiableList()来获取一个包含数组元素的不可修改列表。

    String[] namesArray = new String[] {\"alex\", \"brian\", \"charles\", \"david\"};
    List<String> namesList = Collections.unmodifiableList( Arrays.asList(namesArray) );
    

    1.3. 使用Java 8流

    Steam API也是将元素数组收集到列表的一个很好的选择。流允许我们进行筛选和执行中间操作。

    List<String> namesList = Arrays.stream(namesArray).collect(Collectors.toUnmodifiableList());
    

    2.将数组转换为不可变列表

    不可变列表不允许添加、删除或修改其中存储的项目。

    如果你的项目中使用了Guava库,那么你也可以使用ImmutableList.copyOf()方法来从数组中获取不可变列表。

    List<String> namesList = ImmutableList.copyOf( namesArray );
    

    3. 将数组转换为可变列表

    如果你想创建一个由数组元素支持的可变列表实例,请按照以下方法操作。我们可以在可变列表中添加和删除新项目,也可以修改现有项目。

    3.1. 使用Arrays.asList()

    使用Arrays.asList()来从元素数组获取一个可变列表。

    List<String> namesList  = Arrays.asList(namesArray);
    

    3.2. 使用Guava的Lists.newArrayList()

    同样,如果你的项目中使用了Guava库,你也可以使用这种方法从数组中获取一个可变的ArrayList。

    ArrayList<String> namesList = Lists.newArrayList(namesArray);
    

    以上就是Java中将数组转换为可变、不可变和不可修改的List的全部内容。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9336.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号