如果我想让另一个类能够访问数组列表的内容,例如,在不允许添加或删除任何元素的情况下,通过它来查看里面的内容,这是可能的吗?
在我的脑海中,我认为应该有某种方式来发送一个不可变版本的ArrayList。
如果可以的话,谁能给我举个例子?
谢谢。
有很多方法…
最简单的方法是将数组列表封装在一个不可修改的列表中,使用:
Collections.unmodifiableList(yourArrayList)
返回列表的不可修改视图。
请注意,这并不意味着条目本身不能被修改。
- 将列表转换为数组(带有
toArray(T[] a)
),并将其传递给Arrays.asList()
,这也将返回一个不可修改的列表。 - 如果在代码中使用其他库,如Guava,您可以调用
ImmutableList.copyOf()
或其他变体。