list如何remove
来源:互联网 发布:world of goo for mac 编辑:程序博客网 时间:2024/05/16 11:21
在java中对list进行操作很频繁,特别是进行list启遍历,这些操作我们都会,也很熟悉,但是对java中list进行删除元素,remove list中的元素就不怎么熟悉了吧,可以说很陌生,是实际操作中也很容易出错,先看看下面这个java中如何remove list 中的元素吧.
- public class test {
- public static void main(String[] args) {
- String str1 = new String("abcde");
- String str2 = new String("abcde");
- String str3 = new String("abcde");
- String str4 = new String("abcde");
- String str5 = new String("abcde");
- List list = new ArrayList();
- list.add(str1);
- list.add(str2);
- list.add(str3);
- list.add(str4);
- list.add(str5);
- System.out.println("list.size()=" + list.size());
- for (int i = 0; i < list.size(); i++) {
- if (((String) list.get(i)).startsWith("abcde")) {
- list.remove(i);
- }
- }
- System.out.println("after remove:list.size()=" + list.size());
- }
- }
大家觉得这个程序打印出来的结果是多少呢?
Java代码
- 运行结果不是:
- list.size()=5
- after remove:list.size()=0
而是:
Java代码
- list.size()=5
- after remove:list.size()=2
这是怎么回事呢?到底要如何remove list 中的元素呢?
原因:List每remove掉一个元素以后,后面的元素都会向前移动,此时如果执行i=i+1,则刚刚移过来的元素没有被读取。
怎么解决?有三种方法可以解决这个问题:
1.倒过来遍历list
Java代码
- for (int i = list.size()-1; i > =0; i--) {
- if (((String) list.get(i)).startsWith("abcde")) {
- list.remove(i);
- }
- }
2.每移除一个元素以后再把i移回来
Java代码
- for (int i = 0; i < list.size(); i++) {
- if (((String) list.get(i)).startsWith("abcde")) {
- list.remove(i);
- i=i-1;
- }
- }
Java代码
- for (Iterator it = list.iterator(); it.hasNext();) {
- String str = (String)it.next();
- if (str.equals("chengang")){
- it.remove();
- }
- }
0 0
- list如何remove
- JAVA list如何remove
- java list如何remove
- java list如何remove
- JAVA list如何remove
- list如何remove
- list 集合如何remove重复数据
- List remove
- List::remove()
- list remove
- list remove
- list.remove()
- List remove
- JAVA中LISt遍历时如何remove元素
- JAVA中LISt遍历时如何remove元素
- JAVA中LISt遍历时如何remove元素
- JAVA中LISt遍历时如何remove元素
- 关于List中的remove
- android 零碎
- 轮播图
- HTML DOM reset() 方法
- 网站上线的准备
- ACD.Systems.ACDSee.Pro.v10.2.659.Incl.Keymaker-CORE
- list如何remove
- 网络里的抽象概念
- 原生Javascript插件封装开发实践
- VMWare虚拟机非正常关闭后无法启动的解决方案
- ubuntu tar 命令的使用
- java三大特性
- C语言如何打印LOG
- MongoDB将不同类对象存入同一个Collection
- HDU1180 诡异的楼梯(广搜BFS+优先队列)