如何统计重复出现的个数?

weliff 2009-09-11 10:23:34
随机产生1~100的100个随机数,如何统计,重复出现三次的数,并打印出来?
int[] num = new int[100];
int[] num3Ci = new int[100];
int time = 0;
for(int i=0;i<num.length;i++){
num[i] = (int)(Math.random()*100) + 1;
System.out.print(num[i] + "\t");
if((i+1)%10==0){
System.out.println();
}
}
for(int i=0;i<num.length;i++){
time = 0;
for(int j=i+1;j<num.length;j++){
if(num[i]==num[j]){
time++;
}
if(j==num.length-1 &&time==2){
num3Ci[i] = num[i];
}
}
}
System.out.print("\n出现三次的数有:");
for(int i=0;i<num3Ci.length;i++){
if(num3Ci[i]!=0){
System.out.print(num3Ci[i] + "\t");
}
}
}

我这样写的话,会把出现三次以上的数也都会打印出来?
如何让它单单只打印出现三次的数呢?
...全文
162 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weliff 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hxbot 的回复:]
引用楼主 weliff 的回复:
我这样写的话,会把出现三次以上的数也都会打印出来?
如何让它单单只打印出现三次的数呢?


这种问题很简单呀,用个HasMap 就可以实现统计次数,然后在加个if 判断就行了。
[/Quote]
对不起,我才学了些基础,这个方法还不会用哎,回去研究一下哈!
weliff 2009-09-11
  • 打赏
  • 举报
回复
谢谢你的方法,方法是不错,不过出现五次的数好像也会打印出来哎.
不过我后来找到问题啦,我在判断重复出现次数时
for(int j=i+1;j <num.length;j++)
应该写成
for(int j=0;j <num.length;j++){
if(num[i]==num[j] && i!=j){
time++;
}
这样可以确定只统计出现三次的数啦
hxbot 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 weliff 的回复:]
我这样写的话,会把出现三次以上的数也都会打印出来?
如何让它单单只打印出现三次的数呢?
[/Quote]

这种问题很简单呀,用个HasMap 就可以实现统计次数,然后在加个if 判断就行了。
cz61919345 2009-09-11
  • 打赏
  • 举报
回复
你把if(j==num.length-1 &&time==2)改成if(j==num.length-1 &&time>1&&time<3)就行了,你的if(j==num.length-1 &&time==2)因为超过三次的time 也是从0——1——2——3......所以会都有显示出来!

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧