为什么 List.add(E) 返回布尔值,而 List.Add(int, E) 返回 void?
查看javadoc,我看到ArrayList有一个重载的add方法:
公共布尔添加(E e)
将指定的元素追加到此列表的末尾。
和
public void add(int index, E element)
在此列表中的指定位置插入指定的元素。将当前位于该位置的元素(如果有)和任何后续元素向右移动(向其索引中添加一个)。
我注意到第一个返回,而第二个是.事实证明,第一个必须返回一个,因为:boolean
void
add
boolean
返回:true(由 Collection.add(E) 指定)
所以我去了Collection.add(E):
布尔加法(E e)
确保此集合包含指定的元素(可选操作)。如果此集合由于调用而发生更改,则返回 true。(如果此集合不允许重复并且已包含指定的元素,则返回 false。
所以我的问题是,为什么指定返回布尔值而不是空值?当我有东西时,我期望只做一个手术。add
add
我知道还有其他数据结构,与ArrayList相反,它不允许重复(例如集合)。但即便如此,问题难道不能按照以下思路解决吗:
public void add(E e){
if(e is not in set){
add e;
}
}
这样,如果 IS 在集合中,则不执行任何操作。为什么返回 a 而不是方法更好?e
boolean
void