如何在 Java 中使用 Map、TreeMap 和 List?

How to use Map, TreeMap with List in Java?

如何转换以下数据结果

[a={x=0, y=43, z=57}, b={x=1, y=90, z=9}, c={x=1, y=83, z =16}]

进入

{x=[0,1,1], y=[43,90,83], z=[57,9,16]}

使用地图和树形图。

基本上,我遍历 a、b、c.. 然后在读取它的值时,我想按 Key(x)、values(0,1,1)、Key(y)、values( 43,90,83) 等等。

非常感谢您的帮助。

显然

Map<String, Map<String, Integer>> mapOfMaps = ...
TreeMap<String, List<Integer>> series = mapOfMaps.values().stream()
        .map(Map::entrySet)
        .flatMap(Set::stream)
        .collect(Collectors.groupingBy(Entry::getKey, TreeMap::new,
                Collectors.mapping(Entry::getValue, Collectors.toList())));

http://ideone.com/LHYhE7

您不能使用地图转换数据。您将 'transformed data' 组织成一张地图。可以使用 String class.

中公开的方法来组织数据

可以安全地假设以下是您最后的字符串。

[a={x=0, y=43, z=57}, b={x=1, y=90, z=9}, c={x=1, y=83, z=16}]

使用StringAPI获取每一个设置的内容。 http://docs.oracle.com/javase/7/docs/api/java/lang/String.html 您可以查看 indexOf 或 split 或 substring 等方法。这有助于您将字符串分成 {.......}.

您现在必须遍历并识别 x、y、z 的整数值,找到它们后,您可以将它们添加到列表中。示例:ArrayList.

最后,将字符串 x、y、z 及其对应的 ArrayList 添加到 TreeMap。