我有對象的列表,我有另一對象的名單列表上的對象名單,這兩個對象是不一樣的,一般不會有很多共同點做,除了它們共享一個屬性,在匹配時是相同的。我想從另一個列表中篩選出一個列表的條目。的Java 8過濾對象進行基於其他對象
例如: 對象蘋果isOrdered String屬性名稱和布爾。 對象水果:有字符串屬性名稱和布爾值可用
說ArrayList蘋果充滿條目,其名稱屬性如此:富士,粉紅女士和ArrayList水果與條目富士,粉紅女士,晚會,威廉姆斯,梅。
我想在resultslist什麼是含有水果的清單:盛大,威廉姆斯,UME。
具有舊的Java方法,這可以用一個循環來實現:
for (Fruit fruit: fruits) {
if (!hasEntry(apples, fruit.getName())) {
result.add(fruit)
}
}
與hasEntry是無論是從數據庫中獲取的所有蘋果遍歷列表或直接尋找數據庫中的fruitname。無論哪種方式都很慢。
如果對象是相同的,我可以只使用fruits.removeAll(蘋果)。 java 8 list.filter也似乎只是用於檢查屬性,如果自己的列表中的對象,而不是另一個。
可以過濾還對兩個清單不同勢對象一起使用?
HashSet中看起來像一個很好的方式,我可以使用流映射函數摘錄從數據庫中蘋果列表中的所有名稱。 也可能有辦法一次完成這個任務嗎? –
kumoyadori
@kumoyadori看我的編輯。類似的東西 –