一个java编程题,怎么求出数组中重复数字的出现次数,并按次数从大到下排序
4个回答
推荐于2018-04-22
展开全部
前提 有一个数组 :int[] a = {1,2,3,4,5………………,3,10,1};
先要知道数组的最大最小值。
比如最大10,最小1;
int temp = new int[11] //比最大值大1,保证最后一个坐标是最大值
for(int i=0;i<数组元素个数;i++)
temp[a[i]]++
运行完了之后你对temp数组排序一下就行了,排序不用我说了吧
排序的时候要建立个数组记录排序后的数字以前的下标,下标就是那个重复出现的数字
这是最简单的方案,但是如果你最大值最小值较大,就不适用了
先要知道数组的最大最小值。
比如最大10,最小1;
int temp = new int[11] //比最大值大1,保证最后一个坐标是最大值
for(int i=0;i<数组元素个数;i++)
temp[a[i]]++
运行完了之后你对temp数组排序一下就行了,排序不用我说了吧
排序的时候要建立个数组记录排序后的数字以前的下标,下标就是那个重复出现的数字
这是最简单的方案,但是如果你最大值最小值较大,就不适用了
2013-12-02
展开全部
排序的话简单,Arrays的sort方法可以结局
出现的次数的话,推荐用Map来做
List list = Arrays.asList("aa,xx,ss,xx,ss,e,w,a,aa".split(","));
Map map = new HashMap();
for (String s : list) {
Integer i = map.get(s);
if(i == null)
map.put(s, 1);
else
map.put(s, ++i);
}
System.out.println(map);
出现的次数的话,推荐用Map来做
List list = Arrays.asList("aa,xx,ss,xx,ss,e,w,a,aa".split(","));
Map map = new HashMap();
for (String s : list) {
Integer i = map.get(s);
if(i == null)
map.put(s, 1);
else
map.put(s, ++i);
}
System.out.println(map);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-02
展开全部
使用三个变量存储在比较
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-02
展开全部
循环读取,循环比较!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询