2 回答

TA貢獻1815條經(jīng)驗 獲得超10個贊
老實說,我不確定這的復(fù)雜性(我明天會嘗試弄清楚):
Set<String> left = nonBeans.stream()
.map(AreaOfInterest::getValue)
.collect(Collectors.toSet());
beans.stream()
.filter(x -> left.contains(x.getValue()))
.forEach(x -> x.setSelected(true));
在這種情況下,復(fù)雜性將為O(n).

TA貢獻1993條經(jīng)驗 獲得超6個贊
假設(shè):
List<AreaOfInterest> list = /* ... */
List<AreaOfInterestBean> listOfBeans = /* ... */
兩個簡單的迭代可以輕松實現(xiàn):
for (int i=0; i<listOfBeans.size(); i++) { // Iterate beans
AreaOfInterestBean aoiBean = listOfBeans.get(i); // Get each bean
for (int j=0; j<list.size(); j++) { // Iterate entity
AreaOfInterest aoi = list.get(j); // Get each entity
if (aoiBean.getId() == aoi.getId()) { // If they have the same ID
aoiBean.setValue(aoi.getValue()); // Update the bean value
break; // Go to the next bean
}
}
}
示例:具有以下簡化數(shù)據(jù):
AreaOfInterest同id和value:1, "Car",2, "Bike",3, "Ship"
AreaOfInterestBeans同id和value:5, "Limo",2, "Scooter",7, "Yacht"
結(jié)果AreaOfInterestBeans將是 id 的替換值2:Scooter-> Bike。
AreaOfInterestBeans同id和value:5, "Limo",2, "Bike",7, "Yacht"
另一種流方式:
listOfBeans = listOfBeans.stream()
.peek(aoiBean -> list.stream()
.filter(aoi -> aoi.getId() == aoiBean.getId())
.findFirst()
.ifPresent(i -> aoiBean.setValue(i.getValue())))
.collect(Collectors.toList());
添加回答
舉報