纠结的List remove
来源:互联网 发布:微信一键加附近人软件 编辑:程序博客网 时间:2024/05/19 02:43
remove()这个方法最大的毛病就是改变List的结构,它会将List中想要移除的元素后面的所有元素向前移动一位。
public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("java"); list.add("C++"); list.add("java"); list.add("java"); list.add("java"); list.add("C"); System.out.println("看看原先要删除的元素所在的位置:"); for (int i = 0, len = list.size(); i < len; i++) { if (list.get(i).equals("java")) { System.out.println("location:" + i + ":" + list.get(i)); } } System.out.println("看看是哪些位置的元素被删除:"); for (int i = 0, len = list.size(); i < len; i++) { if (list.get(i).equals("java")) { System.out.println("delete:" + i + ":" + list.get(i)); list.remove(i); } } System.out.println("看看现在那些剩下的元素的位置:"); for (int i = 0, len = list.size(); i < len; i++) { System.out.println(i + ":" + list.get(i)); } }
输入结果如下:
看看原先要删除的元素所在的位置:
location:0:java
location:2:java
location:3:java
location:4:java
看看是哪些位置的元素被删除:
delete:0:java
delete:1:java
delete:2:java
看看现在那些剩下的元素的位置:
0:C++
1:java
2:C
而removeAll()则是删除了所有重复的元素。如上面的,则删除了所有的java。解决remove的方法就是反向循环:
for(int i = list.size() - 1; i >= 0; i++){ ...}
- 纠结的List remove
- 关于list的remove
- list的remove方法
- java list remove的问题
- Java:List的remove解析
- List remove的注意点
- List的remove方法误区
- 关于List的remove陷阱
- 关于List的remove()方法
- java中list的remove
- 浅谈list的remove方法
- List remove
- List::remove()
- list remove
- list remove
- list.remove()
- List remove
- 关于list集合的remove和Iterator的remove
- leetcode 42: Reverse Nodes in k-Group
- 面试笔记3
- OGNL在Struts2中的应用
- java集合类详解
- #读书笔记#松本行弘的程序设计·第一章
- 纠结的List remove
- 博客简介
- 17(39)---windows internal 第6版 mark david alex
- 基于Eht 开发框架 DataGrid 列分组,翻页,添加代码、列拖拽及DataPickter的实现
- osgblendequation例子
- static用法小结
- 王垠:完全用Linux工作
- make -d
- 链表面试题集锦