【发布时间】:2014-05-05 10:23:26
【问题描述】:
我有 2 个数组:
第一个由人名组成。第二个给了我一个页面中出现的名字的数量。 例如:Names=["James","Loiui","Mario","Peter"] 计数=[1,4,2,5]
现在我尝试使用以下代码:
SortedMap<Integer, String> m = new TreeMap<Integer, String>();
for(int i = 0; i < Names.size(); i++)
m.put( count.get(i),Names.get(i));
但这不起作用,因为 count 有重复值。我发现问题出在 TreeMap 上,因为它只存储唯一元素。现在要克服我的问题,还有其他有效的解决方案吗?
【问题讨论】:
-
名称可能是唯一的,因此您应该使用
SortedMap<String, Integer>。但是,如果您的目标是按计数排序,请使用SortedMap<Integer, List<String>>。 -
但我希望最终结果根据 count 降序排列,即首先出现的重复次数最多的名称
-
那么你可以使用
SortedMap<Integer, List<String>>,就像我说的那样。 -
那么我不能有 2 个计数值相同!
-
为什么?如果您有两个相同的计数值,您将拥有从该值到 2 个名称的列表的映射。
标签: java arrays treemap sortedmap