2016-08-05 102 views
-1
for (String varValue : arrayList1) { 
       Map<String, String> mapInstance = new HashMap<>(); 
       val.put(KEY, VALUE); 
       val.put(VAR_KEY, varValue); 
       arrayList2.add(mapInstance); 
      } 

Grundsätzlich möchte ich eine Map mit zwei Einträgen erstellen und dann jede dieser Maps zu einer Liste hinzufügen.Liste der Map mit Streams und Lambda-Ausdrücken erstellen

Schluss Liste:

{KEY,VALUE} {VAR_KEY,arrayList1.get(0)} 
{KEY,VALUE} {VAR_KEY,arrayList1.get(1)} 
{KEY,VALUE} {VAR_KEY,arrayList1.get(2)} 
... 
and so on 
+1

Ok und was stecken Sie fest? Hast du das Stream-Tutorial gelesen? https://docs.oracle.com/javase/tutorial/collections/streams/ – Tunaki

+0

Ja. Ich bin in der Lage, die Liste mit Karte mit nur einem Eintrag zu erstellen, aber wie erstelle ich eine Karte mit mehreren Einträgen? –

+0

Kannst du posten, was du dann hast? – Tunaki

Antwort

0

Was ist der Schlüssel und VAR_KEY? Sie sind die Instanzvariable eines Objekts, das Sie vom eingehenden Objekt aus in Map einfügen möchten. .

Allerdings können Sie so etwas wie dies versuchen: Map result = arrayList1.stream() sammeln (Collectors.toMap (Klasse :: getKey, c -> c));

2

Es scheint, dass Sie nur eine einfache map Bühne benötigen.

List<Map<String, String>> list = arrayList1.stream().map(t -> { 
    Map<String, String> map = new HashMap<>(); 
    map.put("KEY", "VALUE"); 
    map.put("VAR_KEY", t); 
    return map; 
}).collect(Collectors.toList());