hoffe jemand kann mir helfen. Ich habe eine POJO mit folgenden Struktur:Stream einer verschachtelten POJOs-Liste zu einer anderen POJO-LISTE
public class Invoice{
private String docNum;
private String customer;
private ArrayList<InvoiceDetails> invoiceDetails;
/* Getters and setters*/
}
Und ein weiteres POJO mit folgenden
public class InvoiceDetails{
private String vatGroup;
private Double vatAmount;
private Double amount;
/* Getters and setters*/
}
Außerdem habe ich eine dritter mit den folgenden
public class VatType{
private String vatGroup;
private Double vatAmount;
private Double amount;
/* Getters and setters*/
}
habe Was ich versuche zu tun ist, eine List
von Invoice
zu einer List
VatType
gruppiert von VatGroup zu reduzieren. Wie de DISTINCT
Klausel in SQL
. Sagen wir, ich habe folgende Liste:
("S1",300.0,90.0)
("S2",380.0,90.0)
("A1",150.0,30.0)
Wie kann ich diese Liste eine stream
in einem Schuss mit:
InvoiceDetails idA1 = new InvoiceDetails("S1", 100.0, 40.0);
InvoiceDetails idA2 = new InvoiceDetails("S2", 140.0, 40.0);
InvoiceDetails idA3 = new InvoiceDetails("A1", 50.0, 10.0);
ArrayList<InvoiceDetails> listA = new ArrayList<>();
listA.add(idA1);
listA.add(idA2);
listA.add(idA3);
Invoice invoiceA = new Invoice();
invoiceA.setDetailList(listA);
InvoiceDetails idB1 = new InvoiceDetails("S1", 200.0, 50.0);
InvoiceDetails idB2 = new InvoiceDetails("S2", 240.0, 50.0);
InvoiceDetails idB2 = new InvoiceDetails("A1", 100.0, 20.0);
ArrayList<InvoiceDetails> listB = new ArrayList<>();
listB.add(idB1);
listB.add(idB2);
listB.add(idB3);
Invoice invoiceB = new Invoice();
invoiceB.setDetailList(listB);
List<Invoice> invoiceList = new ArrayList<>();
invoiceList.add(invoiceA);
invoiceList.add(invoiceB);
Das erwartete Ergebnis eine List
von VatType
mit den folgenden Elementen sein würde. Vermeiden Sie die Iteration durch die Lists
? Vielen Dank im Voraus
Haben Sie die Stream-API überprüft? – Pelocho
Kann es eine gute Idee sein, die gemeinsamen Teile aus 'InvoiceDetailes' und' VatType' in eine 'CommonClass' zu extrahieren, dann können Sie Operationen auf' List' ausführen und müssen Listen nicht umgekehrt umwandeln? –