如果我错了,请纠正我。
在阅读java.util.List
方法并测试sublist(int fromIndex, int toIndex)
时,我发现了以下结果:
ArrayList
时,从结构上修改调用sublist()的结果将抛出UnsupportedOperationException。 LinkedList
时,从结构上修改调用sublist()
的结果将不会抛出UnsupportedOperationException
。是否因为在ArrayList
中添加元素会将所有元素从正在添加的位置的右侧移位,这是一个在添加sublist()
边界时影响数组的操作将LinkedList
中的元素表示只创建一个新节点,并通过修改其邻居节点链接将其链接到列表中?
答案 0 :(得分:1)
修改subList()
中的ArrayList
不会抛出UnsupportedOperationException
- 以下工作正常:
ArrayList list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
List sub = list.subList(1, 2);
sub.add("d");
答案 1 :(得分:1)
ArrayList
支持使用方法add(int index, E element)
在列表中间添加元素,就像LinkedList
一样。在任何一种情况下,子列表的界限都会受到影响,这不是问题。