在线急等!求一算法!

List l = new ArrayList();
l.add("a");
l.add("a");
l.add("b");
l.add("a");
l.add("c");
l.add("d");
l.add("a");
有这么一个list ,我想得到的结果是lista="a,a,a,a",listb="b",listc="c",listd="d",请问该如何做呢?

public static void main(String[] arsgs) {
List l = new ArrayList();
l.add("b");
l.add("a");
l.add("a");
l.add("a");
l.add("c");
l.add("d");
l.add("a");

        Map<String,String> demo = mySplit(l);
        for (Map.Entry<String,String> entry : demo.entrySet()) {
            System.out.println("key=" + entry.getKey());
            System.out.println("value=" + entry.getValue());
        }
    }


    public static Map<String, String> mySplit(List<String> list) {
            Map<String, String>  result = new TreeMap<String, String>();
            if(list == null ) return null;
            Collections.sort(list);
            for(int index = 0, len= list.size(); index <len; index++) {
                String currentElement = list.get(index);
                if(currentElement == null) {
                    continue;
                }
                else {
                    String key = "list"  + currentElement;
                    result.put(key, result.containsKey(key) ?  result.get( key) + "," + currentElement : currentElement);
                }
            }

            return result;
    }

表达不清楚啊,没弄明白你的意思,lista等是String类型吗?你想通过前面的一个list得到lista等的值?

public static void main(String[] args){
List l = new ArrayList();
List la =new ArrayList();
List lb =new ArrayList();
List lc =new ArrayList();
List ld=new ArrayList();
l.add("a");
l.add("a");
l.add("b");
l.add("a");
l.add("c");
l.add("d");
l.add("a");
for(int i = 0; i < l.size(); i++){
if(l.get(i).equals("a")) la.add("a");
if(l.get(i).equals("b")) lb.add("b");
if(l.get(i).equals("c")) lc.add("c");
if(l.get(i).equals("d")) ld.add("d");
}
String lista = Arrays.toString(la.toArray());
String listb = Arrays.toString(lb.toArray());
String listc = Arrays.toString(lc.toArray());
String listd = Arrays.toString(ld.toArray());

    System.out.println(lista);
    System.out.println(listb);
    System.out.println(listc);
    System.out.println(listd);

}

他要的应该不是这种,lista,listb,listc,listd,.....listx 都是自动生成的。
你这种不行,要是有,e,f 那。应该有liste,listf也都是自动的。

楼上的正解,厉害