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也都是自动的。
楼上的正解,厉害