假如: ArrayList al=new ArrayList();
      al.add("aa");
      al.add("aa");
      al.add("bb");
       al.add("cc");我想取出来的结果把重复的只留一个,其余的替换成“”空,变成:aa,"",bb,cc .这种应该怎么做好?               

解决方案 »

  1.   

    用set导只能把重复的去掉,但我不知道怎么把重复的用空格替换掉。
      

  2.   

    ArrayList al=new ArrayList();
    al.add("aa");
    al.add("aa");
    al.add("bb");HashSet set=new HashSet();
    Object[] temp=al.toArray();
    for(Object o:temp){
    set.add(o);
    }
    System.out.println(set);
      

  3.   

    ArrayList   al=new   ArrayList(); 
    al.add("aa"); 
    al.add("aa"); 
    al.add("bb"); HashSet   set=new   HashSet(); 
    Object[]   temp=al.toArray(); 
    for(Object   o:temp){ 
    set.add(o); 

    System.out.println(set); 这种只是把重复的去掉了,我现在想做的,把那个重复的变成“”空。 (aa,"",bb)这种。
      

  4.   

    自己继承ArrayList,重载其add()方法。
      

  5.   

    ArrayList   al=new   ArrayList(); 
            al.add("aa"); 
            al.add("aa"); 
            al.add("bb"); 
            al.add("cc");
            for(int i=0;i<al.size();i++)
             if(al.indexOf(al.get(i))!=i)
             al.set(i, "");
            System.out.println(al);
      

  6.   

    谢谢 shan1119 .马上结分
      

  7.   

    ArrayList al = new ArrayList();
    al.add("aa");
    al.add("aa");
    al.add("bb");
    al.add("aa");
    al.add("bb");
    ArrayList res = new ArrayList();
    for (Object o : al) {
    if (res.contains(o)) {
    res.add("\"\"");
    } else {
    res.add(o);
    }
    }
    for (Object o : res) {
    System.out.println(o);
    }
      

  8.   

    换成null用循环很好实现
    我工作的时候遇到要去掉重复的自己写了个方法把List重组了,好麻烦,下次试下3楼的方法
    今天学习了
      

  9.   

    对了,各位高手,HashSet在JDK1。4版本里面有吗?for(Object   o:temp)的写法好象6。0的……