Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ArrayList和LinkedList中的java.util.List子列表(int,int)行为_Java_List - Fatal编程技术网

ArrayList和LinkedList中的java.util.List子列表(int,int)行为

ArrayList和LinkedList中的java.util.List子列表(int,int)行为,java,list,Java,List,如果我错了,请纠正我。 在阅读java.util.List方法和测试子列表(int-fromIndex,int-toIndex)时,我发现了以下结果: 使用由数组支持的ArrayList时,从结构上修改调用sublist()的结果将引发UnsupportedOperationException 当使用由之间具有链接的节点支持的LinkedList时,从结构上修改调用sublist()的结果不会引发UnsupportedOperationException 是否因为将元素添加到ArrayLis

如果我错了,请纠正我。 在阅读
java.util.List
方法和测试
子列表(int-fromIndex,int-toIndex)
时,我发现了以下结果:

  • 使用由数组支持的
    ArrayList
    时,从结构上修改调用sublist()的结果将引发UnsupportedOperationException
  • 当使用由之间具有链接的节点支持的
    LinkedList
    时,从结构上修改调用
    sublist()
    的结果不会引发
    UnsupportedOperationException

是否因为将元素添加到
ArrayList
中会将所有元素从添加位置的右侧移动,而这是一个影响
子列表()之外的数组的操作
bounds将元素添加到
LinkedList
中时,只意味着创建一个新节点,并且只通过修改其相邻节点链接将其链接到列表中?

ArrayList
修改
子列表()
不会引发
不支持操作异常
-以下操作正常:

    ArrayList list = new ArrayList();
    list.add("a");
    list.add("b");
    list.add("c");
    List sub = list.subList(1, 2);
    sub.add("d");

A<代码> ARAYLIST//COD>支持用方法>代码>添加(int index,e元素)< />代码,在列表中间添加元素,就像 LINKEdList一样。在任何一种情况下,子列表的边界都会受到影响,这不是问题。

请向我们展示一个简短的、自包含的代码片段,以说明差异。我使用的是Arrays.asList,这里有一些混淆。干杯