gpt4 book ai didi

java - 如何统计HashMap中唯一值的个数?

转载 作者:行者123 更新时间:2023-11-29 09:36:19 25 4
gpt4 key购买 nike

我在这里看到了很多关于如何使用 ArrayList 和 HashMap 的不错的解决方案,但关键是我仍然无法解决我的问题。

所以,这个想法是很少有人喝啤酒、 Wine 和可乐。所以,它看起来像这样(例如):

Steve wine
Steve cola
Ben cola
Frank wine
Ben cola
Ben cola
Frank wine

最后我需要数一数他们每人喝了多少杯饮料。所以,答案应该是这样的:

Steve wine 1
Steve cola 1
Ben cola 3
Frank wine 2

我的想法是创建一个对象 Person(String name, String drink)。然后我把所有的人都放到ArrayList。之后我创建了 HashMap 并想在键不存在时添加一个新的 Person,如果键已经存在则增加到 1。

    Map<Person, Integer> map = new HashMap<Person, Integer>();

for (Person p : persons)
{
if (map.containsKey(p)) {
map.put(p, map.get(p)+1);
} else {
map.put(p,1);
}
}

这是行不通的。它只是返回我这样的结果:

 Steve wine 1
Steve cola 1
Ben cola 1
Frank wine 1
Ben cola 1
Ben cola 1
Frank wine 1

因此,据我了解,这应该是其他一些技巧。也许您还可以告诉我们如何计算饮料的杯数而不是使用 HashMap 的任何其他想法?非常感谢!

最佳答案

在你的 Person 类中覆盖 hashcode 和 equals 方法

关于java - 如何统计HashMap中唯一值的个数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46169229/

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