Sagen wir, ich habe mehrere N Karten mit-> Schlüssel: string val: ObjectWie mehrere Karten und Aggregatwerte Ergebnisse fusionieren Java mit Java8 bevorzugt
Ich möchte sie alle in eine große Karte verschmelzen, und die Summe ihrer Objekt abgelegt Werte:
zum Beispiel:
import java.util.HashMap;
import java.util.Map;
/**
* Created by vitaly on 21/07/2016.
*/
public class Merge {
static Map<String, Container> map1 = new HashMap<>();
static Map<String, Container> map2 = new HashMap<>();
static Map<String, Container> map3 = new HashMap<>();
public void initMaps() {
map1.put("aaa", new Container(1, "title_aaa"));
map1.put("bbb", new Container(4, "title_bbb"));
map2.put("ccc", new Container(7, "title_ccc"));
map2.put("aaa", new Container(10, "title_aaa"));
map3.put("aaa", new Container(13, "title_aaa"));
map3.put("bbb", new Container(16, "title_bbb"));
...
mapN.put(...
}
class Container {
public Container(int val1, String title) {
this.val1 = val1;
this.title = title;
}
int val1;
String title;
}
public static void main(String[] args) {
Merge.mergeMaps(map1, map2, map3);
}
public static Map<String, Container> mergeMaps(Map... maps) {
/**
* HOW create one merged map that sums the values
*/
// The result should be:
//map(aaa, {24,title_aaa) //1+10+13
//map(bbb, {20,title_ccc) //4+16
//map(ccc, {7,title_ccc) //7
return map;
}
}
Bevorzugen Java 8, aber es egal :) nicht
vielen Dank!
Will [ 'putAll' ] (http://stackoverflow.com/a/4299742/4009370) arbeiten? –
glaube nicht, es wird die Werte der Klasse "Container" summieren – VitalyT
Was ist Ihre Frage? Sie scheinen keine 'MergeMaps'-Methode zu haben. Fragen Sie nach einer Lösung, um all das zu tun, was Sie erreichen möchten, denn dann scheint es nicht so, als hätten Sie selbst genug getan. – ragingasiancoder