Java ArrayList可以删除除给定键之外的所有内容吗?

时间:2015-07-26 08:53:58

标签: java arraylist

假设我有一个ArrayList ArrayListA 包含4个对象篮球足球橄榄球羽毛球

是否有一种方法只返回具有特定对象的 ArrayListA ?通过指定 basketball ,此方法将删除 ArrayListA 中不是 basketball 的所有内容?

更新

通过清除ArrayList并手动添加对象并不符合我的要求。如果找不到篮球 ArrayListA 应为空。

2 个答案:

答案 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删除所有其他条目(首先是之后的条目,然后是之前的条目)。

或者,既然您已经拥有了想要保留的那个,请删除所有内容并将其重新添加。