List list=new ArrayList(); 
list.add("a");
list.add("a");
list.add("b");
list.add("b");
list.add("a");
list.add("c");我想得到这样的结果
a:3个重复的
b:2个重复的
c:1个重复的
请个位高手帮忙!我是新手,谢谢!

解决方案 »

  1.   

    献丑了 不灵活的方法 期待好的方法
    package com.venustech.arrayTest;import java.util.ArrayList;
    import java.util.List;public class Test1 {
    static int countA;
    static int countB;
    static int countC;
    public static void main(String[] args){
    List<String> l=new ArrayList<String>();
    l.add("a");
    l.add("b");
    l.add("c");
    l.add("b");
    l.add("a");
    l.add("a");
    for(String test:l){
    if(test.equals("a")){
    countA++;
    }
    if(test.equals("b")){
    countB++;
    }
    if(test.equals("c")){
    countC++;
    }
    }

    System.out.println("a:"+countA+"个重复的");
    System.out.println("b:"+countB+"个重复的");
    System.out.println("c:"+countC+"个重复的");

    }
    }
    /************/
    a:3几个重复的
    b:2几个重复的
    c:1几个重复的
      

  2.   

    mport java.util.*;
    public class Test {
        public static void main(String[] args) {
           List<String> l = new ArrayList<String>();
           l.add("a");
           l.add("b");
           l.add("a");
           l.add("b");
           l.add("b");
           l.add("b");
           l.add("a");
           l.add("a");
           if(l.size() == 1) {                        //如果只有一个元素的话直接输出
            System.out.println(l.get(0)+" "+1);
            return ;
          }
           Collections.sort(l);            //对l排序
           int count = 1;
           for(int i=1; i<l.size(); i++) {
            if(i == l.size()-1) {                    //如果是最后一个元素的话输出
            System.out.println(l.get(i)+" "+count);
            }
            if(l.get(i) != l.get(i-1)) {         //如果与前一个元素不等的话输出前一个元素
            System.out.println(l.get(i-1)+" "+count);
            count = 1;
            } else {
            count++;
            }
          }