比如一个数组 {AAA BBB CCC DDD AAA AAA DDD KKK LLL};
结果就是列出 AAA 3次  DD2次  这样
因为这个数组内容是计算出来的 所以最初是不知道长度的 
所以用了Arraylist List<String> listofXXX = new ArrayList<String>();
listofXXX.add(XXX);//XXX为变量 计算得出然后输出里面排名前10次数的元素 并且附上重复次数非常感谢

解决方案 »

  1.   

    不知道的 元素都是算出来的 然后塞到LIST里面的
      

  2.   


    HASH MAP吗。。求指点。。
      

  3.   

    看球之余,写个小逻辑,如下:
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import java.util.TreeSet;public class Test {
    public static void main(String[] args) {
    Map<String,Integer> map = new HashMap<String,Integer>();
    List<String> list = new ArrayList<String>();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("d");
    list.add("a");
    list.add("d");
    list.add("e");
    list.add("c");
    list.add("b");
    list.add("a");
    list.add("a"); //整理每个字符串出现次数
    TreeSet<Integer> numset = new TreeSet<Integer>();
    for(int i = 0;i < list.size();i++){
    int len = list.size();
    String s = (String)list.get(i);
    Set<String> set = new HashSet<String>();
    set.add(s);
    list.removeAll(set);
    map.put(s, len - list.size());
    numset.add(len - list.size());
    i = 0;
    }

    //输出出现次数最多的10个字符串。如果字符串少于10个,则全部输出后终止
    List<Integer> nums = new ArrayList<Integer>(numset);
    int j = 1;
    for(int i = nums.size() - 1; i > 0;i--){
    for(String key : map.keySet()){
    if(11 == j){
    break;
    }
    if(map.get(key) == nums.get(i)){
    System.out.println(key);
    j++;
    }
    }
    }
    }}
      

  4.   

     import java.util.*;
    public class Test0803 {
    public static void main(String[] args) {        
            Map<String,Integer> map = new HashMap<String,Integer>();
            List<String> list = new ArrayList<String>();
            list.add("a");
            list.add("b");
            list.add("c");
            list.add("d");
            list.add("a");
            list.add("d");
            list.add("e");
            list.add("c");
            list.add("b");
            list.add("a");
            list.add("a");
            Iterator<String> ir=list.iterator();
            String str=null;
            while(ir.hasNext()){
             str=ir.next();
             if(map.containsKey(str)){
             int a=map.get(str);
             a++;
             map.put(str, a);       
             }else{
             map.put(str, 1);
             }    
            }
            System.out.println(map.toString());
    }
    }
      

  5.   

    刚没看清题,参考了下网上关于value的排序,代码如下
    public class Test0803 {
    public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<String, Integer>();
    List<String> list = new ArrayList<String>();
            list.add("a");
            list.add("b");
            list.add("c");
            list.add("d");
            list.add("a");
            list.add("d");
            list.add("e");
            list.add("c");
            list.add("b");
            list.add("a");
            list.add("a");
    Iterator<String> ir = list.iterator();
    String str = null;
    while (ir.hasNext()) {
    str = ir.next();
    if (map.containsKey(str)) {
    int a = map.get(str);
    a++;
    map.put(str, a);
    } else {
    map.put(str, 1);
    }
    } ArrayList<Entry<String, Integer>> l = new ArrayList<Entry<String, Integer>>(
    map.entrySet());
    Collections.sort(l, new Comparator<Map.Entry<String, Integer>>() {
    public int compare(Map.Entry<String, Integer> o1,
    Map.Entry<String, Integer> o2) {
    return (o2.getValue() - o1.getValue());
    }
    });
    if (map.size() < 10)
    System.out.println(map.keySet());
    else {
    for (int i = 0; i < 10; i++) {
    System.out.println(l.get(i).getKey() + ":"
    + l.get(i).getValue());
    }
    } }
    }