我知道当我将一个对象添加到某些集合(如LinkedList)时,该元素不会直接添加到集合中; 实际上,一个节点被添加到提供链接功能的集合中,并且该节点具有对我添加到集合的Object的引用.这适用于所有Java集合类吗?例如,当我执行以下操作时:
List<String> list = new ArrayList<String>();
list.add("Car");
Run Code Online (Sandbox Code Playgroud)
是将String对象"Car"直接添加到列表中,还是仅将一个节点添加到指向"Car"的列表中?
另外,我可以将其视为代理设计模式吗?
Java中的ArrayList使用数组来存储对象的引用,因此它与代理模式无关.您可以看到,对于您自己来说,这是一个指向它的OpenJDK实现的链接.第103行具有相关的代码.
private transient Object[] elementData;
Run Code Online (Sandbox Code Playgroud)
您还可以将它与使用节点存储对下一个和上一个元素的引用的LinkedList进行比较List.
| 归档时间: |
|
| 查看次数: |
326 次 |
| 最近记录: |