最终 ArrayList 的意义是什么?

2022-08-31 13:25:32

通过使ArrayList(或其他集合)最终确定,我们可以获得哪些优点/缺点?我仍然可以向ArrayList添加新元素,删除元素并更新它。但什么是效果使它成为最终的呢?


答案 1

但什么是效果使它成为最终的呢?

这意味着您无法将变量重新绑定以指向其他集合实例

final List<Integer> list = new ArrayList<Integer>();
list = new ArrayList<Integer>(); // Since `list' is final, this won't compile

作为风格问题,我声明大多数引用我不打算更改为.final

我仍然可以向ArrayList添加新元素,删除元素并更新它。

如果您愿意,可以使用 Collections.unmodifiableList() 防止插入、删除等操作:

final List<Integer> list = Collections.unmodifiableList(new ArrayList<Integer>(...));

答案 2

它只是意味着您无法重新分配其引用。尝试执行如下所示的操作将导致编译器错误。

final List<String> list = new ArrayList<String>();

list = new LinkedList<String>();
     ^
     Compiler error here

如果你真的想要一个不可变的列表,你应该使用这个方法。Collections.unmodifiableList()


推荐