错误代码:
package com.java.test;
import java.util.ArrayList;
import java.util.Iterator;
public class Test1_ArrayList {
/**
* ArrayList去除集合中字符串的重复值(字符串的内容相同)
*/
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<>();
al.add("a");
al.add("b");
al.add("c");
al.add("e");
al.add("a");
al.add("b");
al.add("a");
ArrayList<String> a = new ArrayList<>();
Iterator<String> it = al.iterator();
while(it.hasNext()) {
//String s = it.next();
if(!a.contains(it.next())) {
a.add(it.next());
}
}
System.out.println(a);
}
}
会出现java.util.NoSuchElementException异常
正确代码:
package com.java.test;
import java.util.ArrayList;
import java.util.Iterator;
public class Test1_ArrayList {
/**
* ArrayList去除集合中字符串的重复值(字符串的内容相同)
*/
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<>();
al.add("a");
al.add("b");
al.add("c");
al.add("e");
al.add("a");
al.add("b");
al.add("a");
ArrayList<String> a = new ArrayList<>();
Iterator<String> it = al.iterator();
while(it.hasNext()) {
String s = it.next();
if(!a.contains(s)) {
a.add(s);
}
}
System.out.println(a);
}
}
为什么需要先接收一下,我已经用了泛型,所以it.next()返回类型也是String型啊,为什么会出错呢,大神求解!!! |
|