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