【问题标题】:Creating an (k)Integer and (v)Set TreeMap from a list in Java从 Java 中的列表创建 (k)Integer 和 (v)Set TreeMap
【发布时间】:2018-04-14 02:29:51
【问题描述】:

我的目标是用作为整数值的键和作为列表中的一组元素的值填充 TreeMap。 例如说我有一个类似的列表:

1 big 345,
1 small 223,
2 big 312,
1 small 116

我希望 TreeMap 的键是第一个数字,值是列表中元素的集合。所以地图看起来像:

1(K)
1 big 345(V)
1 small 223(V)
1 small 116(V)

2(K)
2 big 312(V)

我不确定如何实现这一点,我编写的唯一代码只是定义一个树形图并将列表复制到一个集合中。我不知道如何将关键与价值联系起来。任何帮助表示赞赏,如果我不清楚,将添加更多信息。

【问题讨论】:

标签: java list key-value treemap


【解决方案1】:

假设您的 List 包含 Foo 实例并且 int 值由 id 字段表示,您可以得到一个 TreeMap<Integer, Set<Foo>> 对象的结果:

List<Foo> foos = ...
TreeMap<Integer, Set<Foo>>` map = new TreeMap<>();
for (Foo foo : foos){
   map.computeIfAbsent(foo.getId() k-> new HashSet<>())
      .add(foo);
}

【讨论】:

    猜你喜欢
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    相关资源
    最近更新 更多