十四周课堂练习-找水王

设计思维:

先将数组中的重复的数值(发言账号)去掉只留一个

存储起来,和原数组进行比较

有相同的就加一

最后判断是否大于总数的50%然后输出

源代码:

 1 import java.util.HashSet;
 2 import java.util.Set;
 3 
 4 public class shuiwang {  
 5     public static void main(String[] args) {  
 6         Object array[]={1,2,3,4,5,6,23,12,12,1,1,1,1,1,1,1,1,1,1,11,1,1,245,11,1,11,1,};//建立数组存放取出状态的时间
 7         
 8         Set<Object> s = new HashSet<Object>();// HashSet用来去掉重复  
 9         for (Object o : array) {  
10         s.add(o);  
11         } // 现在的集合s中无重复的包含array中的所有元素 
12         
13         Object[] obj = s.toArray();// 把集合s中的元素存入数组obj2中  
14         int[] n = new int[obj.length];// 这个数组用来存放每一个元素出现的次数  
15         
16         int max = 0;  
17         for (int i = 0; i < obj.length; i++) {  
18             int cout = 0;  
19             for (int j = 0; j < array.length; j++) {  
20                 if (obj[i].equals(array[j]))  
21                     cout++;  
22                 // 用obj中的元素跟array中的每一个比较,如果相同cout自增  
23             }  
24             n[i] = cout;// 每一个元素出现的次数存入数组n  
25                 // 数组n的下标i跟数组obj的下标是一一对应的。  
26             if (max < cout) {// 得到元素出现次数最多是多少次  
27                 max = cout;  
28             }  
29         } 
30         
31         for (int i = 0; i < n.length; i++) {  
32             if (max == n[i]) {  
33                 // 如果出现的次数等于最大次数,就输出对应数组obj中的元素  
34                 System.out.println("发帖最多的id是:"+obj[i]);  
35             }  
36         }
37         System.out.println("发过帖的id有:"+s);
38         int b=array.length;
39         System.out.println("总发帖数为:"+b);
40         if(max>b/2)
41             System.out.println("水王发帖数为:"+max);
42         else
43             System.out.println("水王发帖数不足");
44     }
45     
46 }  

运行截图:

原文地址:https://www.cnblogs.com/0518liu/p/11070189.html