2016-11-22 25 views
-3

的另一個列表我有一個對象List<Object>哪些對象包含字符串的元素的列表的字符串元素對象列表中的元素。現在還有另一個字符串列表List<String>有一種方法篩選出含有具有基於字符串

我要第一個名單隻包含作爲第二列表元素的對象。

什麼是最有效的方法來做到這一點?

+3

對於任何你想查找的東西,你應該有一個'Set'而不是'List'。 – RealSkeptic

+0

@ Jean-FrançoisCorbett我通過迭代儘管我認爲是最微不足道的解決方案列表來完成它。 –

回答

0

您可以使用列表的方法,這對您的情況很方便,因爲它會檢查字符串equals()

例如

List<String> otherList = new ArrayList<>(); 
    List<Object> test = new ArrayList<>(); 
    Iterator<Object> it = test.iterator(); 
    while(it.hasNext()){ 
     if(!otherList.contains(it.next().getString())) it.remove(); 
    } 

或Java8流

test.stream().filter(e -> otherList.contains(e.getString())) 
       .collect(Collectors.toList()); 

這會產生你一個新的List

相關問題