首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AbstractList<E> - add(int index,E元素)、add(E e)等返回类型的区别?

AbstractList<E> - add(int index,E元素)、add(E e)等返回类型的区别?
EN

Stack Overflow用户
提问于 2013-03-17 11:56:12
回答 1查看 106关注 0票数 2

方法addAll(int index, Collection<? extends E> c)add(E e)返回一个boolean,通知已成功添加元素。另一方面,add(int index, E element)并非如此。

为什么会这样呢?我如何才能知道元素是否可以添加?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-17 12:02:14

add(E)Collection的成员。对于某些类型的集合--尤其是保证唯一性的Set --有时添加元素可能会以一种意料之中的方式“失败”,因为该元素已经在集合中了。在这种情况下,布尔返回值很有用。

另一方面,add(int, E)List的成员,以这种方式向列表添加元素永远不会失败--根据定义,List可以包含重复的元素。

addAll(int, Collection<E>)的难度要大一些。它是List的成员,所以根据定义,添加的内容不会被拒绝。Javadoc表示“如果该列表因调用而改变”,则返回true。我猜想如果参数是一个空集合,它可能会返回false。这似乎不是很有用。

但请注意,在Collection中有一个addAll(Collection<E>),当所有添加的元素都是重复的,并且集合是一个Set时,它可以返回false。因此,我假设List方法返回boolean,因为Collection方法返回--出于对称考虑,而不是出于任何实际需要。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15457372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档