JAVA遍历List集合并删除其中的元素
这里的两个方法主要用在需要遍历删除集合中符合某一条件的元素的情况下,如果要删除List集合中所有的元素的话,直接用List接口中的clear()方法或者直接让它的值为null就行了。
方法一:
public void removeList1() {
List<String> list = new ArrayList<String>();
list.add("b1");
list.add("b2");
list.add("b3");
list.add("b4");
list.add("b4");
list.add("b5");
System.out.println("删除前的集合为:" + list);
System.out.println("删除前集合的长度为:" + list.size());
for (int i = 0, len = list.size(); i < len; i++) {
list.remove(i);
len--;// 少了会报错。
i--;// 少了就不能删除所有的元素了。
}
System.out.println("删除后的集合为:" + list);
System.out.println("删除后集合的长度为:" + list.size());
}
方法二:
public void removeList2() {
List<String> list = new ArrayList<String>();
list.add("b1");
list.add("b2");
list.add("b3");
list.add("b4");
list.add("b4");
list.add("b5");
System.out.println("删除前的集合为:" + list);
System.out.println("删除前集合的长度为:" + list.size());
Iterator<String> it=list.iterator();
while(it.hasNext()&&!it.next().equals("")){
it.remove();
}
System.out.println("删除后的集合为:" + list);
System.out.println("删除后集合的长度为:" + list.size());
}
注意:
(1)当Iterator里面只有一个元素时,它的hasNext()方法返回值为true,它的next()方法返回的值就是它里面的那个元素;
当它里面没有一个元素时,它的hasNext()方法返回值为false,它的next()方法就产生异常了。
(2)如果直接遍历集合并调用remove方法的话,是不能删除所有的元素的。如下所示:
public void removeList3() {
List<String> list = new ArrayList<String>();
list.add("b1");
list.add("b2");
list.add("b3");
list.add("b4");
list.add("b4");
list.add("b5");
System.out.println("删除前的集合为:" + list);
System.out.println("删除前集合的长度为:" + list.size());
for (int i = 0; i < list.size(); i++) {
list.remove(i);
}
System.out.println("删除后的集合为:" + list);//不能删除所有的元素。
System.out.println("删除后集合的长度为:" + list.size());
}