我有兩個對象列表。 Person
和PurchaseOrder
。Java 8:通過編號合併兩個對象列表
Person
有姓名,年齡,身份證等
PurchaseOrder
有PERSONID(FK人ID),時間戳,金額等
使用Java 8,我如何才能購買的平均人的年齡的訂單金額< 18?
List<Person> personList = Arrays.asList(person);
List<PurchaseOrder> purchaseOrderList = Arrays.asList(purchaseOrders);
List<Person> underAgePerson = personList.stream()
.filter(p -> p.getAge < 18)
.collect(Collectors.toList());
// TODO:
purchaseOrderList.stream()
.forEach(o1 -> underAgePerson.stream()
.filter(o2 -> o1.getPersonId() == o2.getId()));
purchaseOrderList.stream().mapToDouble(o2 -> Long.valueOf(o2.getAmount())).average();
我看你找到了答案,但我只是好奇的東西。你在計算平均值是什麼?金額數量的總和肯定是平均值,但每個金額的平均值是多少?你不想要像每個人的平均金額? –
我剛剛嘗試了Java 8,並且被困在如何合併兩個列表中。 – sophie