2017-06-17 100 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