java,数组,Map

2019-01-03 01:30发布

使用java语言,输入一串数字,求,各个数字出现的次数,并按出现次数的大小进行排序。例如,输入次数:1 2 3 4 2 12
输出:2出现次数3,1出现次数2,3出现次数1,4出现次数1(不要用Collections.sort() )

标签: java 数组 map
1条回答
Luminary・发光体
2楼-- · 2019-01-03 01:50

循环map, 用map的key值存到数组里面, 然后可以循环数组冒泡排序;
判断里写 map.get(array[i]) 比较map对应的value值, 然后对应array中的key换位,
可能说的不太明白, 就是数组里存的其实是map的key值,
比如之前冒泡排序是if(array[i] < array[i+1])
现在是if(map.get(array[i]) < map.get(array[i+1]))
判断里面还是不变:
String temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
这样就是把数组中key值的顺序换了, 最后排序完
循环array; 输出map.get(array[i])就是了

查看更多
登录 后发表回答