假设我有一个ArrayList ArrayListA 包含4个对象篮球,足球,橄榄球,羽毛球的
是否有一种方法只返回具有特定对象的 ArrayListA ?通过指定 basketball ,此方法将删除 ArrayListA 中不是 basketball 的所有内容?
更新
通过清除ArrayList并手动添加对象并不符合我的要求。如果找不到篮球, ArrayListA 应为空。
答案 0 :(得分:4)
我认为最简单的方法是:
list.clear();
list.add(yourObject);
<强>更新强>
因此,如果你想检查存在,你可以做list.indexOf
boolean found = false;
if(list.indexOf(yourObject) != -1){
found =true;
}
list.clear();
if(found){
list.add(yourObject);
}
答案 1 :(得分:3)
在JDK中没有特别的内容,但你可以使用ArrayList#removeIf
传递一个谓词,该谓词匹配除你想要保留的条目之外的所有内容。
当然List#indexOf
获取条目的索引,然后通过removeRange
删除所有其他条目(首先是之后的条目,然后是之前的条目)。
或者,既然您已经拥有了想要保留的那个,请删除所有内容并将其重新添加。