Sim*_*eon 42 java arrays collections arraylist
我最近发现ArrayList在Java 中实际上有两种不同的实现(比我猜想的更好......).
所以我想知道为什么Arrays.asList(T... a)需要返回一个无法调整大小的列表?如果他们需要一个不可修改的列表,set(int index, E element)那么为什么要添加方法?
所以我的一般问题是为什么不java.util.ArrayList从Arrays.asList(T... a)方法中返回?
您还可以通过java.util.Arrays.ArrayList实施获得什么?
Ral*_*lph 50
您询问:
您还可以使用java.util.Arrays.ArrayList实现获得什么?
这是因为Arrays.asList返回的Arrays $ ArrayList只是原始数组的一个视图.因此,当更改原始数组时,视图也会更改.
如果使用真实的ArrayList,那么将复制元素,并且对orignal数组的更改不会影响ArrayList.
这样做的原因很简单:
它们是两个具有不同行为的不同类别.
调用时返回的列表Arrays.asList是数组上的瘦包装器,而不是副本.返回的列表是固定大小的:尝试调用add将抛出UnsupportedOperationException异常.
在java.util.ArrayList另一方面,保持数据的其自身的内部复制和可变大小.
| 归档时间: |
|
| 查看次数: |
21071 次 |
| 最近记录: |