【问题标题】:Want to convert the list of strings to map in java 8 [duplicate]想要在java 8中将字符串列表转换为映射[重复]
【发布时间】:2019-02-21 11:37:56
【问题描述】:

我有一个字符串列表,我需要将其以 java 8 中键、值对的形式放入 Map 中。有人可以帮帮我。

List<string> list= [(Id=123,roll number=1,name=maddy)];

我需要 id 的值作为键,值作为 123。用逗号分隔的所有项目都相同。但我在 java 8 中需要它

【问题讨论】:

  • 你能定义你的Map&lt;K,V&gt;的类型吗?
  • list.stream().map(s -&gt; s.split("=")).collect(Collectors.toMap(a -&gt; a[0], a -&gt; a[1]));
  • "gimme the codez" question = 2 upvotes ...有些人根本不能投票。
  • 我看到该问题已被标记为与要求完全相反的其他问题的重复。这是在讽刺吗?
  • 我建议重新打开它而不是重复,并立即重新关闭它,因为没有任何努力可以解决问题。

标签: java list dictionary java-8


【解决方案1】:

拆分List的元素并收集到Map

Map<String,String> map = 
    list.stream()
        .map(s -> s.split("="))
        .collect(Collectors.toMap(a->a[0], a->a[1]));

请注意,如果密钥应该是 Integer,则必须将 a[0] 更改为 Integer.valueOf(a[0])

还要注意,如果List 可能包含重复的键,您应该决定如何处理它们(并可能向收集器添加合并功能)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 2016-10-20
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多