运行时总是报java.util.ConcurrentModificationException,请问如何解决?就用LinkedList,不用Set。import java.util.*;public class NameList{

private static void addName(List<String> list,String name){

ListIterator<String> it=list.listIterator();
while(it.hasNext()){
String in=it.next();
if(name.equals(in)){
    System.out.println("不允许插入重复的名字:"+name);
break;
}
else 
list.add(name);
}
}



 private static void searchName(List<String> list,String name){

ListIterator<String> it=list.listIterator();
while(it.hasNext()){
String in=it.next();
if(name.equals(in)){
System.out.println("查找结果:"+name);
break;
}
else
System.out.println("找不到对应的名字");
}
}
public static void main(String[] args) {
List<String> list=new LinkedList<String>();
list.add(new String("Tom"));
list.add(new String("Mike"));
list.add(new String("Jerry"));
list.add(new String("Mary"));
list.add(new String("Kevin"));

Collections.sort(list);
System.out.println(Arrays.toString(list.toArray()));

searchName(list,"Tom");
addName(list,"Jerry");
addName(list,"Peter");
System.out.println(Arrays.toString(list.toArray()));
}}

解决方案 »

  1.   

    你的代码有问题,我给修改了一下:
    import java.util.*;public class NameList { private static void addName(List<String> list, String name) { ListIterator<String> it = list.listIterator();
    boolean result = false;
    while (it.hasNext()) {
    String in = it.next();
    if (name.equals(in)) {
    result = true;
    break;
    }
    }
    if (result) {
    System.out.println("不允许插入重复的名字:" + name);
    } else {
    list.add(name);
    }
    } private static void searchName(List<String> list, String name) { ListIterator<String> it = list.listIterator();
    boolean result = false;
    while (it.hasNext()) {
    String in = it.next();
    if (name.equals(in)) {
    result = true;
    break;
    }
    }
    if (result) {
    System.out.println("查找结果:" + name);
    } else {
    System.out.println("找不到对应的名字");
    }
    } public static void main(String[] args) {
    List<String> list = new LinkedList<String>();
    list.add(new String("Tom"));
    list.add(new String("Mike"));
    list.add(new String("Jerry"));
    list.add(new String("Mary"));
    list.add(new String("Kevin")); Collections.sort(list);
    System.out.println(Arrays.toString(list.toArray())); searchName(list, "Tom");
    addName(list, "Jerry");
    addName(list, "Peter");
    System.out.println(Arrays.toString(list.toArray()));
    }}
      

  2.   


    我知道有逻辑错误,刚学习JAVA一个月,谢谢指教!