List集合删除某个元素
创建List集合
1 | List<String> stringList = new ArrayList<>(); |
删除
for循环
正向删除
每删除一次必须进行一次i--
,因为stringList.size()在减少,否则List集合中连着的两个元素都相同的话,删除这个相同的元素时就只能删除一个。因为删除第一个元素时下一个以及之后的元素的索引会在原来的基础上-1,而i的值经过一次循环后就+1了,由于下一个元素的索引变成了被删除元素的索引,所以循环会跳过要删除的第二个元素,那么会出现等于要删除的值的元素删不完的情况
1 | for (int i = 0; i < stringList.size(); i++) { |
反向删除
可以直接删除,不需要进行其他的操作
1 | for (int i = stringList.size() - 1; i >= 0; i--) { |
迭代器
1 | Iterator iterator=stringList.iterator(); |
Stream
得到新的List集合就是去掉目标元素的集合
1 | List<String> stringList1=stringList.stream().filter(s -> !s.equals("a")).collect(Collectors.toList()); |
PS.
不能使用foreach循环,用foreach删除list元素的时候只有删除倒数第二个元素时不会报错
详细原因查看:foreach遍历list删除元素一定会报错?
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LeDao's Blog!
评论