一个List<user>,其中有userName属性,我想知道怎么样能比较userName有没有重复的,并且在重复的userName后面加数字以作区分,比如,有三个username都为Cer,则这三个Cer变为,Cer1,Cer2,Cer3,谢谢各位高手先

解决方案 »

  1.   

    遍历整个集合,然后一一比较,在修改相同的userName属性
    暂时只想到这么做等待高手...
      

  2.   

    使用boolean tag[] = new boolean[list.size()];
    从list.get(0)开始查,如果发现重复的则tag[i]=true;下次再查的时候tag[i]是true的,就不用在list中get(i)了.(只能是你添加数字后的userName和list里面的userName不重复时这么做.
      

  3.   


     if(userList.contains(userName)){
       
    }
      

  4.   

    将你user类中的username属性值放到list数组中,然后循环判断。
    下面的代码你自己更改后可以使用(泛型String改为user)list里保存成username属性值import java.util.ArrayList;
    import java.util.List; 
    public class Test5 {    
     public static void main(String[] args) {

     List<String> list=new ArrayList<String>();
     list.add("a");
     list.add("a");
     list.add("a");
     list.add("a");
     list.add("a");
     list.add("a");
     int z=0;
     while(z<list.size()){
     
     int j=1;
     for (int i = 0; i < list.size(); i++) {
     
     if(i!=z && list.get(z).equals(list.get(i))){
    System.out.println(list.get(i)+"*****************");
    list.set(i,list.get(i)+j);
    j++;
    System.out.println(list.get(i)+"*****************");
     }
    }
     z++;
     } }

    }
      

  5.   

    import java.util.ArrayList;
    import java.util.List;
    public class TestList { static List<String> list = new ArrayList<String>();

    public static void main(String[] args) {
    list.add("car");
    list.add("ddd");
    list.add("ddd");
    list.add("car");
    list.add("car");
    list.add("BBB");
    list.add("car");
    list.add("ccc");
    list.add("car");
    list.add("ccc");
    list.add("car");

    Boolean b = false;
    for(int i = 0; i < list.size(); i++) {
    int flag = 1;
    for(int j = 0; j < list.size(); j++) {
    if(list.get(i).equals(list.get(j)) && i != j) {
    list.set(j, list.get(i) + new Integer(++flag).toString());
    b = true;
    }

    if(j == list.size() -1 && b == true) {
    b = false;
    list.set(i, list.get(i) + "1");
    }
    }
    }

    for(int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));
    }
    }}