List list = new ArrayList();
List checkList = new ArrayList();
for (int i = 0; i < 5; i++) {
list.add(i);
}
for (int k = 5 ; k < 7; k++) {
checkList.add(k);
}
/**
* 判定checkList中的元素是否在list中已经存在
*/
for (Integer checkNum : checkList) {
for (Integer num : list) {
//当list中不存在这个对象是就判定将这个 对象加入到list中
if (checkNum != num) {
list.add(checkNum);
}
}
}
这样做法就会报出一个异常:java.util.ConcurrentModificationException,其实这个原因很简单,就是在便利list的时候,如果这个对象不存在就加入list,那么这个for循环中list的长度其实是变化的。所以我们一般真确的做法是:List list = new ArrayList();
List checkList = new ArrayList();
for (int i = 0; i < 5; i++) {
list.add(i);
}
for (int k = 5 ; k < 7; k++) {
checkList.add(k);
}
/**
* 判定checkList中的元素是否在list中已经存在
*/
for (Integer checkNum : checkList) {
if (!list.contains(checkNum)) {
list.add(checkNum);
}
}
如果是Map的话就更简单了,就直接用containsKey或contaiValue就可以判定key或value是否存在于Map中了,具体做法这里就不在赘述。
分享到:
2009-06-14 13:41
浏览 7965
评论