这个问题在CSDN上的上镜率比较高,就是写一个程序判断一个数组中出现次数最多的那个元素。我给出的代码是:
- importjava.util.*;
- publicclassFindMostEle{
- privatestaticLinkedHashMap<String,Integer>map;
- publicstaticLinkedHashMap<String,Integer>mostEle(String[]strArray){
- map=newLinkedHashMap<String,Integer>();
- Stringstr="";
- intcount=0;
- intresult=0;
- for(inti=0;i<strArray.length;i++)
- str+=strArray[i];
- for(inti=0;i<strArray.length;i++){
- Stringtemp=str.replaceAll(strArray[i],"");
- count=(str.length()-temp.length())/strArray[i].length();
- if(count>result){
- map.clear();
- map.put(strArray[i],count);
- result=count;
- }
- elseif(null==map.get(strArray[i])&&count==result)
- map.put(strArray[i],count);
- }
- returnmap;
- }
- publicstaticvoidmain(Stringargs[]){
- String[]strArray={"11","11","2","2","4","5","4"};
- LinkedHashMap<String,Integer>result=mostEle(strArray);
- ArrayList<Integer>c=newArrayList<Integer>(result.values());
- Set<String>s=result.keySet();
- System.out.print("一共有"+result.size()+"元素最多。它们分别是");
- System.out.print(s);
- System.out.println(",分别出现了"+c.get(0)+"次。");
- }
- }
结果是:
- 一共有3元素最多。它们分别是[11,2,4],分别出现了2次。