gpt4 book ai didi

java - 需要帮助在 Java 中映射此数据

转载 作者:搜寻专家 更新时间:2023-11-01 01:02:33 25 4
gpt4 key购买 nike

我在映射此数据时遇到问题

          1           35
1 30
1 20
2 10
3 40
3 25
3 15

我尝试使用 HashMap,但它只会映射到该数据的最后一次出现。

最佳答案

您描述的 MapHashMap 的行为是预期的行为,正如其他评论者所指出的那样。你想要的是多图。您可以自己滚动(不要这样做——其他评论者建议将 map 映射到列表,但这很快就会变得很麻烦。如果您真的想自己滚动,请滚动您自己的带有列表/设置值的通用多图并隐藏复杂性。 ) 或使用 Guavamultimap .示例:

import com.google.common.collect.HashMultimap;
import com.google.common.collect.SetMultimap;

public static void main(String[] args)
{
final SetMultimap<Integer, Integer> foo = HashMultimap.create();
foo.put( 1,35);
foo.put( 1,30);
foo.put( 1,20);
foo.put( 2,10);
foo.put( 3,40);
foo.put( 3,25);
foo.put( 3,15);
System.out.println(foo);
}

输出:

{1=[35, 20, 30], 2=[10], 3=[25, 40, 15]}

如果你想访问这些值,有几种方法取决于你想做什么。只需调用 get(Integer key) 即可返回值的集合。

另外,查看 this answer ,其中引用了 Guava 中的许多相关优点。

关于java - 需要帮助在 Java 中映射此数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4456280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com