正如在以前的评论中提到,你可以有整数有序映射ArrayList参数如下,
SortedMap<Integer, ArrayList<String>> map=new TreeMap<Integer, ArrayList<String>>().descendingMap();
既然你想要的结果是降序我添加descendingMap()。
我们使用ArrayList,因为您可能在count数组中有重复项。多个名称可以具有相同的计数值。所以一个计数会有一个名字列表。
以及完整的代码如下,
import java.util.ArrayList;
import java.util.SortedMap;
import java.util.TreeMap;
public class NameCount {
public static void main(String[] args) {
String[] names = {"James","Loiui","Mario","Peter"};
int[] count = {1, 4, 2, 1};
SortedMap<Integer, ArrayList<String>> map=new TreeMap<Integer, ArrayList<String>>().descendingMap();
ArrayList<String> nameList=null;
for(int i = 0; i < names.length; i++)
{
if(map.get(count[i])==null)
{
nameList = new ArrayList<String>();
nameList.add(names[i]);
map.put(count[i], nameList);
}
else
{
map.get(count[i]).add(names[i]);
}
}
for(int countVal : map.keySet())
{
ArrayList<String> namesListVal=map.get(countVal);
System.out.print("\nCount "+countVal+ ": NAMES : ");
for(String name : namesListVal)
{
System.out.print(name+" ");
}
}
}
}
名称可能是唯一的,所以你应该使用'的SortedMap <字符串,整数>'。但是,如果您的目标是按计数排序,请使用'SortedMap>'。 –
但我希望最终结果按照计数降序排列,即首先出现的重复名称 – kiran
然后,您可以使用'SortedMap <整数,列表>',正如我所说的那样。 –