Java 8 Lambda - Kreuzung von Zwei Listen

Ich bin auf der Suche intersection zwei Listen auf der Grundlage einer Bedingung und mache ein paar Schritte. Konnte nicht einen Weg finden, es zu tun (in der Lernphase) 🙂

Double totalAmount = 0.00d;
Double discount = 0.00d;


List<OrderLineEntry> orderLineEntryList = orderEntry.getOrderReleases().stream().flatMap(orderReleaseEntry ->
    orderReleaseEntry.getOrderLines().stream()).filter(orderLineEntry -> orderLineEntry.getStatus().equals("PP") 
        || orderLineEntry.getStatus().equals("PD")).collect(Collectors.toList());

for (OrderLineEntry orderLineEntry : orderLineEntryList) {
    for (SplitLineEntry splitLineEntry : splitReleaseEntry.getLineEntries()) {
        if (splitLineEntry.getOrderLineId().equals(orderLineEntry.getId()) && splitLineEntry.getStatusCode() !=
            "PX") {
            totalAmount += orderLineEntry.getFinalAmount();
            couponDiscount += orderLineEntry.getCouponDiscount() == null ? 0.00d : orderLineEntry.getCouponDiscount();
        }
    }
}

Als Sie sehen, die Logik ist einfach

Bekommen Alle Elemente, um basierend auf einige filter list und überschneiden sich mit anderen list und einige Sachen.

InformationsquelleAutor der Frage Reddy | 2015-07-28

Schreibe einen Kommentar