1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java list移除所有元素_Java - List集合中如何删除多个元素? remove( )方法 ?

java list移除所有元素_Java - List集合中如何删除多个元素? remove( )方法 ?

时间:2020-03-08 02:18:20

相关推荐

java list移除所有元素_Java - List集合中如何删除多个元素? remove( )方法 ?

List集合中的remove方法

remove(int index) :移除此列表中指定位置上的元素。

Iteractor的remove方法

remove(): 从迭代器指向的 collection 中移除迭代器返回的最后一个元素.

1.使用普通for循环.

/*

删除ArrayList集合中的 "bbb" 元素.

*/

public class list {

public static void main(String[] args) {

// 定义ArrayList集合,并存入多个字符串。

ArrayListlist = new ArrayList<>();

list.add("aaa");

list.add("bbb");

list.add("bbb");

list.add("ccc");

list.add("bbb");

list.add("bbb");

list.add("aaa");

System.out.println("删除之前:"+list);

// 使用普通for循环遍历 , 删除元素 bbb

for (int i = 0; i < list.size(); i++) {

// 判断集合中元素是否和bbb相等.

if("bbb".equals(list.get(i))){

list.remove(i);

i--; // 重点 - 一定要注意写!

}

}

System.out.println("删除之后:"+list);

}

}

删除之前:[aaa, bbb, bbb, ccc, bbb, bbb, aaa]

删除之后:[aaa, bbb, ccc, bbb, aaa]

为什么要写i- - ?

当删除bbb元素后,下一个元素就会向前移一位 , 而索引继续往后加!

所以删除之后 , 用i- - 回到删除元素时的索引位置继续进行判断.

2.使用倒叙循环.

for (int i = list.size() - 1; i >= 0; i--) {

if("bbb".equals(list.get(i))){

list.remove(i);

}

}

删除之前:[aaa, bbb, bbb, ccc, bbb, bbb, aaa]

删除之后:[aaa, ccc, aaa]

3.使用迭代器.

// 获取集合对应的迭代器,用来遍历集合中的元素的。

Iteratoriterator = list.iterator();

while(iterator.hasNext()){

String next = iterator.next();

if("bbb".equals(next)){

// 注意: 不能用list的remove方法.

// list.remove(next);

// 使用迭代器中的remove()方法,可以删除元素.

iterator.remove();

}

}

注意:

如果使用list.remove()方法就会报ConcurrentModifiedException(并发修改异常):

什么情况下会出现并发修改异常 ?

在使用迭代器遍历集合的过程中 , 修改了集合的长度(添加/删除元素) !

注意:

使用迭代器/增强for对 Collection集合或者数组 只能进行遍历 ,

不能修改或删除元素 , 否则就会报并发修改异常.

扩展知识点:

Iterator接口中有一个子接口ListIterator(只有list接口下的集合可以使用)

ListIterator接口中方法:

add(): 添加元素

remove(): 删除元素.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。