【问题标题】:How to use Map, TreeMap with List in Java?如何在 Java 中使用 Map、TreeMap 和 List?
【发布时间】:2015-10-13 15:24:13
【问题描述】:

如何转换以下数据结果

[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) 等等。

非常感谢您的帮助。

【问题讨论】:

  • 所有发布的都是程序描述。但是,我们需要您ask a question。我们无法确定您想从我们这里得到什么。请edit您的帖子包含一个我们可以回答的有效问题。提醒:请确保您知道what is on-topic here,请我们为您编写程序,建议是题外话。
  • @gla3dr 我刚刚编辑了我的问题。现在可以了吗?
  • 您的列表 是否包含 x、y、z 和整数等字母?
  • @KumarAbhinav 我的 ASIS 系列是:“Map> series= new TreeMap>();"和 TOBE "Map> series = new TreeMap>();"

标签: java list dictionary treemap


【解决方案1】:

显然

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

【讨论】:

  • 非常感谢 zapl。我非常感谢您的帮助。我正在努力弄清楚概念图、树图、列表、列表数组。你能给我推荐一些教程吗?再次感谢
  • @Devz 我不确定你的水平是多少,但如果你的斗争是基本的,stackoverflow.com/tags/java/info 列出了一些不错的教程和课程。尤其是那些 EDX/Coursera/Udemy/.. 学习平台通常有优秀的(免费)课程,应该涵盖列表和地图以及这些细节。
  • 您好! @zapl,您提出的解决方案适用于 JRE8,但是当我切换到 JRE 7.80 并将 eclipse 构建路径设置为 1.7 时。 (出于部署原因)错误“- 仅在源级别 1.8 或更高版本中允许方法引用”
  • @Devz 没错,它根本不兼容 Java 7。但是,如果您阅读了所有这些 Java 8 流操作的描述,它们通常会向您描述它们在普通的旧 Java 中所做的事情。有了这个,你应该可以翻译这个了。
【解决方案2】:

您不能使用地图转换数据。您将“转换后的数据”组织到地图中。可以使用 String 类中公开的方法来组织数据。

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多