import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.stream.Collectors;
class Example {
public static void main
(String[] args
) { // prepare data..
Map
<String, Map
<String, Integer
>> mapOfMaps
= new TreeMap
<>(); Map
<String, Integer
> m
= new HashMap
<>(); m.put("x", 0);
m.put("y", 43);
m.put("z", 57);
mapOfMaps.put("a", m);
m = new HashMap<>();
m.put("x", 1);
m.put("y", 90);
m.put("z", 9);
mapOfMaps.put("b", m);
m = new HashMap<>();
m.put("x", 1);
m.put("y", 83);
m.put("z", 16);
mapOfMaps.put("c", m);
// magic
TreeMap
<String, List
<Integer
>> series
= mapOfMaps.
values().
stream() .
collect(Collectors.
groupingBy(Entry
::getKey,
TreeMap::new,
Collectors.mapping(Entry::getValue, Collectors.toList())));
// print
System.
out.
println("From: " + mapOfMaps
); System.
out.
println("To: " + series
); }
}
aW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOwppbXBvcnQgamF2YS51dGlsLkxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuTWFwOwppbXBvcnQgamF2YS51dGlsLk1hcC5FbnRyeTsKaW1wb3J0IGphdmEudXRpbC5TZXQ7CmltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uQ29sbGVjdG9yczsKCmNsYXNzIEV4YW1wbGUgewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCS8vIHByZXBhcmUgZGF0YS4uCgkJTWFwPFN0cmluZywgTWFwPFN0cmluZywgSW50ZWdlcj4+IG1hcE9mTWFwcyA9IG5ldyBUcmVlTWFwPD4oKTsKCQlNYXA8U3RyaW5nLCBJbnRlZ2VyPiBtID0gbmV3IEhhc2hNYXA8PigpOwoJCW0ucHV0KCJ4IiwgMCk7CgkJbS5wdXQoInkiLCA0Myk7CgkJbS5wdXQoInoiLCA1Nyk7CgkJbWFwT2ZNYXBzLnB1dCgiYSIsIG0pOwoJCW0gPSBuZXcgSGFzaE1hcDw+KCk7CgkJbS5wdXQoIngiLCAxKTsKCQltLnB1dCgieSIsIDkwKTsKCQltLnB1dCgieiIsIDkpOwoJCW1hcE9mTWFwcy5wdXQoImIiLCBtKTsKCQltID0gbmV3IEhhc2hNYXA8PigpOwoJCW0ucHV0KCJ4IiwgMSk7CgkJbS5wdXQoInkiLCA4Myk7CgkJbS5wdXQoInoiLCAxNik7CgkJbWFwT2ZNYXBzLnB1dCgiYyIsIG0pOwoKICAgICAgICAvLyBtYWdpYwoJCVRyZWVNYXA8U3RyaW5nLCBMaXN0PEludGVnZXI+PiBzZXJpZXMgPSBtYXBPZk1hcHMudmFsdWVzKCkuc3RyZWFtKCkKCQkJCS5tYXAoTWFwOjplbnRyeVNldCkKCQkJCS5mbGF0TWFwKFNldDo6c3RyZWFtKQoJCQkJLmNvbGxlY3QoQ29sbGVjdG9ycy5ncm91cGluZ0J5KEVudHJ5OjpnZXRLZXksIFRyZWVNYXA6Om5ldywKCQkJCQkJQ29sbGVjdG9ycy5tYXBwaW5nKEVudHJ5OjpnZXRWYWx1ZSwgQ29sbGVjdG9ycy50b0xpc3QoKSkpKTsKCgogICAgICAgIC8vIHByaW50CgkJU3lzdGVtLm91dC5wcmludGxuKCJGcm9tOiAiICsgbWFwT2ZNYXBzKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIlRvOiAgICIgKyBzZXJpZXMpOwoJfQp9
From: {a={x=0, y=43, z=57}, b={x=1, y=90, z=9}, c={x=1, y=83, z=16}}
To: {x=[0, 1, 1], y=[43, 90, 83], z=[57, 9, 16]}