2017-06-17 56 views
-1

后取下ArrayList中的所有项目我有一个数组列表特定项目

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

而且我想“猫”后删除所有项目。

有没有办法做到这一点?

回答

4

你可以得到其余元素的subList(...),并且clear()它:

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

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

+0

谢谢,man it :) :) –

+0

Thanks @Christopher! – janos

+1

@davidxxx不,它不。请参阅[javadoc]中的投射说明(https://docs.oracle.com/javase/8/docs/api/java/util/List.html#subList-int-int-)(您也可以给它一试。) – janos