List中删除元素remove和removeAll
2017-03-09 10:07
155 查看
public class ListTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(3); list.add(4); for (int i=0; i<list.size(); i++) { if (list.get(i) == 3) { list.remove(i); } } System.out.println(list); } }
输出结果:[1, 2, 3, 4]
List中元素没有全部删除,由于每remove掉一个元素以后,后面的元素都会向前移动,导致则刚刚移过来的元素没有被读取。所以通过从后向前遍历可以解决这个问题,代码如下:
for (int i = list.size() - 1; i >= 0; i--) { System.out.println(i); if (list.get(i) == 3) { list.remove(i); } }
也可以通过removeAll方法删除,传参是Collection
List<Integer> item = new ArrayList<Integer>(); item.add(3); list.removeAll(item);
相关文章推荐
- list,set等集合遍历时,不能remove集合中的元素。需要new一个Object或者list,set,里面add需要删除的元素,等集合遍历完了进行remove(Object)或者removeAll(list/set)操作
- [Lintcode] Remove Linked List Elements 删除链表中的元素
- [C++]Remove Linked List Elements 删除链表中的元素
- [lintcode]Remove Linked List Element 删除链表中的元素
- lintcode 容易题:Remove Duplicates from Sorted List 删除排序链表中的重复元素
- (LeetCode)Remove Linked List Elements --- 删除节点元素
- 112. 删除排序链表中的重复元素(remove-duplicates-from-sorted-list)(c++)----lintcode面试题之链表
- leetcode83---Remove Duplicates from Sorted List(删除重复元素)
- 【LeetCode-面试算法经典-Java实现】【203-Remove Linked List Elements(删除单链表中的元素)】
- Remove Linked List Elements 删除链表中指定元素
- leetcode 82-- Remove Duplicates from Sorted List II 链表 双指针 删除元素
- 删除有序链表的重复元素 Remove Duplicates from Sorted List
- java list中删除元素用remove()报错的fail-fast机制原理以及解决方案
- 遍历删除 list 中符合条件的元素时(for, Remove),应从后往前进行
- (LeetCode)Remove Duplicates from Sorted List --- 链表中删除重复元素
- Leetcode:203 Remove Linked List Elements(删除链表中的某个元素))
- LeetCode OJ 之 Remove Linked List Elements(删除链表中的元素)
- leetcode(83)—— 删除已排序链表重复元素(Remove Duplicates from Sorted List)
- C++/STL_利用remove_if 删除vector,list,deque满足条件的元素
- LeetCode Remove Nth Node From End of List 删除倒数第n个元素