你知道Java中有不可变ArrayList吗?

这篇教程介绍了如何使用JDK、Guava和Apache Commons Collections 4从现有的ArrayList创建不可变列表。文中详细展示了各种库提供的方法,并强调了这些操作会创建列表的副本而非只读视图。
摘要由CSDN通过智能技术生成

1.概述

本快速教程将展示如何使用核心JDK 创建一个ArrayList不可变,使用Guava,最后使用Apache Commons Collections 4。

2.使用JDK

首先,JDK提供了一种从现有集合中获取不可修改集合的好方法:

Collections.unmodifiableList(list);

此时新集合不再可修改:

@Test(expected = UnsupportedOperationException.class)
public void givenUsingTheJdk_whenUnmodifiableListIsCreated_thenNotModifiable() {
    List<String> list = new ArrayList<String>(Arrays.asList("one", "two", "three"));
    List<String> unmodifiableList = Collections.unmodifiableList(list);
    unmodifiableList.add("four");
}

3.使用Guava

Guava提供了类似的功能来创建自己的ImmutableList版本:

ImmutableList.copyOf(list);

同样 - 结果列表不应该是可修改的:

@Test(expected = UnsupportedOperationException.class)
public void given
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值