如题

解决方案 »

  1.   

    import java.util.Arrays;class Test {    public static void main(String[] args) {
            int[] array = {5, 9, 3, 2, 2, 1, 4, 7, 8, 8, 10, 15, 15, 15};
            Result result = new Result();
            stat(array, result);
            System.out.println("出现次数最多的元素:" + result.getElement());
            System.out.println("出现次数:" + result.getCount());
        }    public static boolean stat(int[] array, Result result) {
            if (array == null || array.length == 0) {
                return false;
            }
            Arrays.sort(array);
            int length = 1;
            int element = -1;
            for (int i = 1; i < array.length; i++) {
                if (array[i] == array[i - length]) {
                    length++;
                    element = array[i];
                }
            }
            result.setCount(length);
            result.setElement(element);
            return true;    }
    }class Result {    private int element;
        private int count;    public Result() {
        }    public int getCount() {
            return count;
        }    public void setCount(int count) {
            this.count = count;
        }    public int getElement() {
            return element;
        }    public void setElement(int element) {
            this.element = element;
        }
    }
      

  2.   

    在这个贴中写了一个简单的算法,你只要再把里面的数组的值最大的取出来就可以了
    http://topic.csdn.net/u/20080821/21/f739f977-b51f-4eb3-8169-86a521f00a3d.html
      

  3.   

    import java.util.*;public class test {
    public static void main(String[] args) {
            int[] array = {1,2,2,3,4,4,5,6,7,7,8,9};
            int iMaxCount=0;
            //因为可能有多个元素的出现次数同时位居第一,
            //所以结果应该是一个集合。用一个List来装载。
            List<Integer> list=new ArrayList<Integer>();  
            for (int i=0;i<array.length;i++){
             int iCount=0;
             for (int j=0;j<array.length;j++){
            if (array[i]==array[j])
            iCount++;
             }
             if (iCount>iMaxCount){
             list.clear();
             list.add(array[i]);
             iMaxCount=iCount;
             }else if (iCount==iMaxCount){
             if (list.indexOf(array[i])==-1)
             list.add(array[i]);
             }
            }
            System.out.println("出现次数最多的元素为"+list.toString());
    }
    }
    运行结果:出现次数最多的元素为[2, 4, 7]
      

  4.   

    String arr[] = { "4", "5", "6", "7", "4", "3", "4", "5", "6", "3", "6",
    "3", "5", "6", "4", "3", "345", "8", "9" };
    int max = 0;
    Set<Object> result = new HashSet<Object>();
    Map<Object, Integer> mp = new HashMap<Object, Integer>(); for (int i = 0; i < arr.length; i++) {
    Integer num = mp.put(arr[i], 1);
    if (num != null) {
    mp.put(arr[i], num + 1);
    if (num > max) {
    result.clear();
    result.add(arr[i]);
    max = num;
    } else if (num == max) {
    result.add(arr[i]); }
    }
    } System.out.println(mp);
    System.out.println(result);
      

  5.   

    这种东西能不用set就不用set吧,用set就一点意思都没有了
      

  6.   

    不敢苟同,那JAVA设计那么多类干什么!不过本题直接用一个Map就可以了
      

  7.   

            
            String[] s = {"a","b","a","a","b","c"};
            HashMap<String, Integer> hm = new HashMap<String, Integer>();
            
            for (int i = 0; i < s.length; i++) {
                if (!hm.containsKey(s[i])) {
                    hm.put(s[i], 1);
                } else  {
                    hm.put(s[i], hm.get(s[i]).intValue()+1);
                }
            }
            
            System.out.println(hm);
      

  8.   

    Integer类型,有intValue()方法。把Integer类型转化为int类型。判断数组中最大元素的 也是面试题 替换 = 比较 清空 添加
    if(iCount>iMaxCount){
                    list.clear();
                    list.add(array[i]);
                    iMaxCount=iCount;
                }else if (iCount==iMaxCount){
                    if (list.indexOf(array[i])==-1)
                        list.add(array[i]);    
                }if (num > max) {
                        result.clear();
                        result.add(arr[i]);
                        max = num;
                    } else if (num == max) {
                        result.add(arr[i]);                }if (list.indexOf(array[i])==-1) 这句是什么意思?上回我上机自己也是先排序 再比较。
      

  9.   

    if (list.indexOf(array[i])==-1) 
    返回list中array[i]的索引,如果找不到就返回-1.
      

  10.   

    用map结构就可以啦,key值为元素,value是出现次数。
      

  11.   

    虽然结帖了不过还是想问一下8楼的这句是怎么回事?
    Integer num = mp.put(arr[i], 1);
      

  12.   

    用replaceAll实现的  感觉好理解点
    import java.util.*;public class FindMostInArray {
    public static void main(String args[]){
    int[] intArray = {1,2,2,3,4,4,5,6,7,7,8,9};
    List<Integer> list = new ArrayList<Integer> ();

    String str = "";

    for(int i=0; i<intArray.length; i++){
    str += String.valueOf(intArray[i]);
    } int MaxCount = 0;

    for(int i=0; i<intArray.length; i++){
    String tempString = str.replaceAll(String.valueOf(intArray[i]), "");
    int tempCount = str.length() - tempString.length();

    if (tempCount > MaxCount){
    list.clear();
    list.add(intArray[i]);
    MaxCount = tempCount;
    }
    else if((tempCount == MaxCount) && (!list.contains(intArray[i]))){
    list.add(intArray[i]);
    }
    }

    System.out.println("The most repeat number is: "+ MaxCount +"\nThe duplicated elements are: "+ list.toString());
    }
    }The most repeat number is: 2
    The duplicated elements are: [2, 4, 7]
      

  13.   

    put(K key, V value) 
    与 key 关联的旧值;如果 key 没有任何映射关系,则返回 null 
    如果map中含有这个key就返回 value 
    由于我这里是泛型的<Object, Integer> 
    所以就返回integer类型的value