Java 为什么返回一些方法的值,例如:add(E)、remove(Object)、addAll、,。。。集合框架中是否为布尔值?
我是个愚蠢的学生。我有一个问题,就是题目。 我认为当我这样做时,返回布尔值与否对我没有影响:Java 为什么返回一些方法的值,例如:add(E)、remove(Object)、addAll、,。。。集合框架中是否为布尔值?,java,collections,Java,Collections,我是个愚蠢的学生。我有一个问题,就是题目。 我认为当我这样做时,返回布尔值与否对我没有影响: List<String> lst = new ArrayList<String>(); lst.add("whatever"); lst.remove("whatever"); List lst=new ArrayList(); 第1条添加(“任何”); l.移除(“任何”); 下面是API中Arraylist类的remove方法(从集合接口重写): public boole
List<String> lst = new ArrayList<String>();
lst.add("whatever");
lst.remove("whatever");
List lst=new ArrayList();
第1条添加(“任何”);
l.移除(“任何”);
下面是API中Arraylist类的remove方法(从集合public boolean remove(Object o) {
if (o == null) {
for (int index = 0; index < size; index++)
if (elementData[index] == null) {
fastRemove(index);
return true;
}
} else {
for (int index = 0; index < size; index++)
if (o.equals(elementData[index])) {
fastRemove(index);
return true;
}
}
return false;
}
公共布尔删除(对象o){
如果(o==null){
对于(int index=0;index
我认为如果在集合公共void remove(objecto)代码>可以,但他们必须有特定的目的,我不明白。返回布尔值是为了什么?请告诉我删除(o)
如果在集合中未找到o,则返回false。如果删除:
它准确地告诉您是否有任何对象已从您的收藏中删除
在添加的情况下:
它在集合
中很有用,比如集合
,因为如果向集合中添加了新元素,它将返回true
,如果对象已经在集合中,它将返回false
从哈希集:
public boolean add(E e) {
return (this.map.put(e, PRESENT) == null);
}
有时,客户机代码可能不知道要删除的对象是否是集合的一部分。此客户端代码当然希望了解删除操作的效果。因此,设计决定返回布尔值 --编辑 例如
假设在两个线程之间共享一个同步的集合。一个填充它,另一个从中移除对象。删除线程想知道删除是否成功。返回的
布尔值告诉您元素是否包含给定的元素。请查看ArrayList
官方文档请给我一些示例,说明如何在客户端代码中使用返回的布尔值。