首页新闻找找看学习计划

Java基础,数组排序

0
悬赏园豆:5 [已解决问题] 解决于 2018-05-21 18:17

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

tuwosh的主页 tuwosh | 初学一级 | 园豆:18
提问于:2018-05-21 16:58
< >
分享
最佳答案
0

HashMap, key存输入值, value存次数

map.entrySet()转换成list
Collections.sort
然后循环输出

百度好多, 自己找找详细代码
参考:https://www.cnblogs.com/liujinhong/p/6113183.html
参考:https://blog.csdn.net/xifeijian/article/details/46522531

收获园豆:5
、熙和 | 小虾三级 |园豆:1486 | 2018-05-21 17:50

不用Collections.sort可以实现吗?

tuwosh | 园豆:18 (初学一级) | 2018-05-21 18:25

@tuwosh:
循环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])就是了

、熙和 | 园豆:1486 (小虾三级) | 2018-05-21 20:43

@、熙和: 可以了,谢谢!

tuwosh | 园豆:18 (初学一级) | 2018-05-22 09:23
其他回答(1)
0

百度有。 存到map中 输入值做key  次数做value

凡人修仙迹 | 园豆:352 (菜鸟二级) | 2018-05-21 17:21

这种方式实现不了,因为没有办法根据value取到key,你这种方式是根据value排序的

支持(0) 反对(0) tuwosh | 园豆:18 (初学一级) | 2018-05-21 17:26

@tuwosh: 可以吧-- 循环取map对象 value一样 就直接去key啊

支持(0) 反对(0) 凡人修仙迹 | 园豆:352 (菜鸟二级) | 2018-05-21 17:35

@凡人修仙迹: 不太明白你说的意思,key对应value,value对应不了key,你要是有方法,麻烦写出来,或者给出链接

支持(0) 反对(0) tuwosh | 园豆:18 (初学一级) | 2018-05-21 17:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册