Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Java 与ArrayList和List的区别_Java - Fatal编程技术网

Java 与ArrayList和List的区别

Java 与ArrayList和List的区别,java,Java,您好,这里我试图从列表中列出项目,并为每个迭代打印5个项目。 在下面的代码中,它每次都打印相同的项目 for(int i=0;i<4;i++) { List<Card> l=a.subList(a.size()-5, a.size()); System.out.println(l); } for(int i=0;i似乎对的结果使用.clear()。子列表()从原始列表中删除返回的项目似乎对的结果使用.clear()。子列表()从原始列表中删除返回的

您好,这里我试图从列表中列出项目,并为每个迭代打印5个项目。 在下面的代码中,它每次都打印相同的项目

for(int i=0;i<4;i++)
    {
    List<Card> l=a.subList(a.size()-5, a.size());
    System.out.println(l);

 }

for(int i=0;i似乎对
的结果使用
.clear()
。子列表()
从原始列表中删除返回的项目

似乎对
的结果使用
.clear()
。子列表()
从原始列表中删除返回的项目

返回的列表由以下内容支持 列表中的非结构性更改 返回的列表将反映在该列表中 列表,反之亦然


因此,在每种情况下,您创建的列表都不是原始列表中元素的新副本,而只是原始列表的一个视图。在第二个示例中,您在新列表上调用clear,这实际上是在清除原始列表中的那些元素,因此您看到的行为。

您应该在

返回的列表由以下内容支持 列表中的非结构性更改 返回的列表将反映在该列表中 列表,反之亦然


因此,在每种情况下,您创建的列表都不是原始列表中元素的新副本,而只是原始列表的一个视图。在第二个示例中,您在新列表上调用clear,这实际上是在清除原始列表中的元素,因此您看到的行为。

这是的设计行为e> 子列表()
。请参阅


甚至有一个例子做了几乎完全相同的事情。(从视图中删除项)

这是
子列表()的设计行为。
。请参阅


甚至有一个例子做了几乎完全相同的事情。(从视图中删除项目)

签出子列表的文档。它返回一个由原始列表备份的列表,可用作视图。如果修改子列表,它将修改主列表。由于您清除了其中的元素,原始列表也将被修改。

签出子列表的文档。它返回一个由原始列表备份的列表,可用作视图。如果修改子列表将修改主列表。由于您清除了其中的元素,原始列表也将被修改。

列表是接口。ArrayList是列表接口的实现类。

列表是接口。ArrayList是列表接口的实现类。

两者都很奇怪。您想做什么?这是您的
哈ndView.clear();
删除项目。第二个是我在教程中看到的…第一个是我想做的,两个都很奇怪。你想做什么?这是你的
handView.clear()
删除物品。第二个是我在教程中看到的…第一个我想做的我相信这是预期的行为我相信这是预期的行为
 for(int i=0;i<4;i++){
     int deckSize = a.size();
     List<Card> handView = a.subList(deckSize-5, deckSize);
     ArrayList<Card> hand = new ArrayList<Card>(handView);
     handView.clear();
     System.out.println(hand);
 }