Java 集合之List 集合的删除方法顺序分析以及remove和removeAll区别
来源:互联网 发布:策略限制网络 编辑:程序博客网 时间:2024/05/21 06:36
在上一篇 《Java 集合之List 集合的添加方法顺序分析以及add和addAll区别》中已经分析过
对于List集合顺序从前到后的分析论证,这里将不再详细分析 remove()方法的顺序
此篇将就 remove()和removeAll()的区别分析
java的 List 集合中 使用 remove 删除元素,同时集合的 size 会发生变化
一、remove()方法:
语法1 remove(Object element)删除名为 element 的元素
语法2 remove(int index)删除集合索引 index 处的元素
接下来用一个例子 看 使用 remove(Object element)方法和remove(int index)带下标的方法后集合的顺序改变
public class TestList { public static void main(String args[]) { // 结果: Hello Learn List list = new ArrayList(); list.add("Hello"); list.add("World"); list.add("Hello"); list.add("Learn"); // 到此为止若遍历则输出 Hello World Hello Learn list.remove("Hello"); // 1 到此为止若遍历则输出 World Hello Learn list.remove(0); // 2 上一步执行后 下标为0 处的是 World 故这步移除world for (int i = 0; i < list.size(); i++) { // 输出结果 System.out.print(list.get(i)+" "); } }}
因为 List集合的元素的存入顺序是从头开始。
1 处代码 list.remove( "Hello" ) 执行后, remove掉的 Hello 是 第一个添加 的元素 Hello 、原先第二个添加的 Hello 不受影响。
此时当前集合中元素的第一位变成了 World,
故 2 处的代码利用带下标方法 list.remov( 0 ) 执行后将删除当前集合中下标为 0 的元素 ,World 被移除。
输出结果为:
注意 remove(Object element)方法只在当前集合中按顺序移除一个元素。即使后边还有 与 element 相同的元素。也不再删除
二、removeAll()方法
注意removeAll()中没有带下标的方法
语法 removeAll(collection c)删除集合索引 index 处的元素
这里添加一个新的 list2 集合。将之前的 list 集合添加到 list2 中
public class TestList { public static void main(String args[]) { List list = new ArrayList(); list.add("Hello"); list.add("World"); list.add("Hello"); list.add("Learn"); // 到此为止若遍历 list 输出 Hello World Hello Learn System.out.println("-----list的输出结果-----"); for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i)+" "); } List list2 = new ArrayList(); //测试区,这是开始位置 list2.add(list); // 1 //这是结束位置,以下测试代码将代入到这块区域中 System.out.println("\n-----list2的输出结果-----"); for (int i = 0; i < list2.size(); i++) { System.out.print(list2.get(i)+" "); } System.out.println("\nlist2的长度为:"+list2.size()); }}
1 处代码通过 add()方法将 list 添加到 list2 集合中,注意add()方法加入的长度为1 ,
即把此前的 list 当做一个元素集合来处理,并且以数组形式显示,(上篇中已提到)
此时在1 处代码之后写上一行 remove 方法的代码
测试区代码:
list2.remove(0);此时 list2 中的元素下标为 0 的第一位元素将删除,即 list2 中没有元素
输出结果:
若将上边 1 处之后代码改为
list2.remove(list2);输出结果:
结果和最初的代码结果没有变化,list2.remove(list2) 代码不起作用。 remove()方法中没有删除集合对象的方法
以上代码行 改为:
list2.removeAll(list2);运行结果:
删除成功,因为removeAll()方法中参数为 集合对象。
同理,利用 addAll()方法将 list 添加到 list2 中 ,即 1 1处代码改为
list2.addAll(list);
之后加入代码行
list2.removeAll(list2);运行结果同上图运行结果。
若将 list2.addall(list) 后的代码行改为
list2.remove(list2);
运行结果同最初,该行代码仍然不起作用
因此得出结论。remove()方法不能删除传入的集合对象。
即括号参数只能是 remove(Object element)和 remove(int index)
而 removeAll()方法中参数只能是 一个集合对象 。而不能是 一个元素名称
如 list.removeAll("Hello"); 提示错误 。不被允许输入。
- Java 集合之List 集合的删除方法顺序分析以及remove和removeAll区别
- Java 集合之List 集合的添加方法顺序分析以及add和addAll区别
- 如何使用Java List等集合类的removeAll方法
- 如何使用Java List等集合类的removeAll方法
- 如何使用Java List等集合类的removeAll方法
- Java List等集合类的removeAll方法
- 如何使用Java List等集合类的removeAll方法
- 如何使用Java List等集合类的removeAll方法
- 如何使用Java List等集合类的removeAll方法
- 如何使用Java List等集合类的removeAll方法
- 如何使用Java List等集合类的removeAll方法
- java 集合removeAll问题分析
- List中删除元素remove和removeAll
- JAVA 集合框架优化之list.removeAll大数据量优化
- List和set集合:交集、差集、合集的区别retainAll,removeAll、addAll
- List的clear()方法和removeAll()方法 的区别
- 关于用集合的remove方法删除list集合中满足条件的元素问题
- Java中List集合里Contains和Remove方法的本质
- centos 7 中用yum安装 php 7.0
- Java 9 中的 9 个新特性
- android 模拟阴影
- 学习正则表达式
- Handler,Message,MessageQuene三者不得不说的故事
- Java 集合之List 集合的删除方法顺序分析以及remove和removeAll区别
- 指针和数组间的不明关系
- Data Types
- allegro学习之绘制板框倒角出问题及解决
- java之IO流
- 高速缓存DNS
- Hadoop常用命令汇总
- Android设计模式之Activity基类封装
- js加载顺序问题