在特定项目后删除ArrayList中的所有项目

时间:2017-06-17 19:12:02

标签: java android arraylist

我有一个数组列表

ArrayList<String> list=new ArrayList<String>();
  list.add("Apple"); 
  list.add("Ball");  
  list.add("Cat");  
  list.add("dog");  
  list.add("Egg");

我想删除“Cat”之后的所有项目。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:4)

您可以获得subList(...)个剩余元素,clear()它:

int index = list.indexOf("Cat");
if (index > -1) {
    list.subList(index + 1, list.size()).clear();
}

我看到其他答案尝试尝试使用removeremoveAll方法。 那效率不高, 因为remove(Object)removeAll(Collection)方法尝试匹配列表中的元素,这需要扫描整个列表。 更糟糕的是,如果元素可能出现多次, 那么这些技术也可能错误地在目标之前删除元素。 使用subListclear是正确,高效和简单的。