-3
的另一個列表我有一個對象List<Object>
哪些對象包含字符串的元素的列表的字符串元素對象列表中的元素。現在還有另一個字符串列表List<String>
。有一種方法篩選出含有具有基於字符串
我要第一個名單隻包含作爲第二列表元素的對象。
什麼是最有效的方法來做到這一點?
的另一個列表我有一個對象List<Object>
哪些對象包含字符串的元素的列表的字符串元素對象列表中的元素。現在還有另一個字符串列表List<String>
。有一種方法篩選出含有具有基於字符串
我要第一個名單隻包含作爲第二列表元素的對象。
什麼是最有效的方法來做到這一點?
您可以使用列表的方法,這對您的情況很方便,因爲它會檢查字符串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
。
對於任何你想查找的東西,你應該有一個'Set'而不是'List'。 – RealSkeptic
@ Jean-FrançoisCorbett我通過迭代儘管我認爲是最微不足道的解決方案列表來完成它。 –