【发布时间】:2014-11-14 17:00:56
【问题描述】:
我有一个哈希图
Map<String, ArrayList<String>> games = new hashmap<String, Arraylist<String>>();
它包含名称作为键和游戏列表作为值。 像这样:
A= [ cricket, soccer, tennis, baseball]
B= [soccer, badminton, rugby]
C= [cricket, badminton]
D= [rugby, cricket, soccer]
E= [cricket, baseball]
F= [tennis, rugby]
现在我想计算每个值(板球、足球等)的出现次数和 根据值的出现,只为键分配一个值。 在这里,板球发生了 4 次,足球发生了 3 次,依此类推。 并比较每个键的值并检查哪些值出现了多少次。 然后我想分配出现次数最多的值。 那就是我想要一个像这样的哈希图:
A= [ cricket] // because among its 4 values, cricket has occured maximum times.
B= [soccer] // among its 3 values, soccer has occured maximum times.
C= [cricket]
D= [cricket]
E= [cricket]
F= [rugby] // among its 2 values, rugby has occured maximum times which is 3.
等等…… 我不知道如何处理这种情况。所以,请帮我解决这个问题 提供详细信息。 谢谢
【问题讨论】:
-
您可以创建 countMap 地图,它将游戏名称存储为键,并将出现次数存储为值。然后遍历游戏地图及其所有内部列表并在countMap中设置值。在此之后,您将更容易解决您的问题。
-
我会说,与其寻求解决方案,不如自己尝试一下,然后如果您卡在代码中的任何位置,您可以询问它。
-
@NamanGala ..我尝试在 entryset() 和比较器上使用 for 循环,但不知道函数的确切实现..thnxx 无论如何..我会记住这件事下次..
-
您本可以在这里发布代码.. 有人可能已经给出了建议.. 而且您还会获得有关您自己代码的最佳实践的信息..
标签: java arraylist hashmap key-value