Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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 抽象列表<;E>;-add(int索引、E元素)、add(E)等返回类型之间的差异?_Java - Fatal编程技术网

Java 抽象列表<;E>;-add(int索引、E元素)、add(E)等返回类型之间的差异?

Java 抽象列表<;E>;-add(int索引、E元素)、add(E)等返回类型之间的差异?,java,Java,方法addAll(int index,Collectionadd(E)是Collection的成员。对于某些类型的集合--Set,它保证了唯一性,特别是--有时添加元素可能“失败”因为元素已经在集合中,所以以非surprising方式返回。在这种情况下,布尔返回值很有用 另一方面,add(int,E)是列表的成员,向列表中添加一个元素将永远不会失败,按照定义,列表可以包含重复的元素 addAll(int,Collection)有点难。它是List的成员,因此根据定义,添加不会被拒绝。Javado

方法
addAll(int index,Collection
add(E)
Collection
的成员。对于某些类型的集合--
Set
,它保证了唯一性,特别是--有时添加元素可能“失败”因为元素已经在集合中,所以以非surprising方式返回。在这种情况下,布尔返回值很有用

另一方面,
add(int,E)
列表
的成员,向列表中添加一个元素将永远不会失败,按照定义,
列表
可以包含重复的元素

addAll(int,Collection)
有点难。它是
List
的成员,因此根据定义,添加不会被拒绝。Javadoc说,如果调用导致列表更改,则返回true。我想如果参数是空集合,则可能返回false。这似乎不是很有用


但是请注意,有一个
addAll(集合)
集合
中,当所有添加的元素都是重复的并且集合是一个
集合时,它可以返回
false
。因此我想象
列表
方法返回
布尔值
,因为
集合
方法是对称的,而不是出于任何实际需要。

你必须问谁曾经写过关于他们为什么选择这样做的代码。@Makoto-请看下面的答案。是的。但是
addAll(int,Collection)
有点奇怪。它可能返回void而不是boolean。在我输入所有内容之前,您已经评论过:)