`
bugyun
  • 浏览: 558995 次
社区版块
存档分类
最新评论

List 中 remove 的使用

    博客分类:
  • Java
 
阅读更多

 

for (int i = 0; i < list.size(); i++) {
			if (((String) list.get(i)).startsWith("abcde")) {
				list.remove(i);
			}
		}

 List每remove掉一个元素以后,后面的元素都会向前移动,此时如果执行i=i+1,则刚刚移过来的元素没有被读取

 

 

1.倒过来遍历list

 

for (int i = list.size()-1; i > =0; i--) {
  if (((String) list.get(i)).startsWith("abcde")) {
   list.remove(i);
  }
}

 

2.每移除一个元素以后再把i移回来

 

for (int i = 0; i < list.size(); i++) {
  if (((String) list.get(i)).startsWith("abcde")) {
   list.remove(i);
   i=i-1;
  }
}

 

3.使用iterator.remove()方法删除

for (Iterator it = list.iterator(); it.hasNext();) {
  String str = (String)it.next();
  if (str.equals("chengang")){
   it.remove();
  }
}

 

分享到:
评论
2 楼 bugyun 2015-10-16  
QuarterLifeForJava 写道
是的,是的,其实个人还是比较偏好“1.倒过来遍历list”
不过现在java8,可以采用如下方法:
list = list.stream()
           .filter(x->!x.startsWith("abcde"))
	   .collect(Collectors.toList());;
System.out.println(list);

java8这种格式没用过,如果性能没有特别出色的话,我还是会选择以上三种简洁的格式
1 楼 QuarterLifeForJava 2015-10-14  
是的,是的,其实个人还是比较偏好“1.倒过来遍历list”
不过现在java8,可以采用如下方法:
list = list.stream()
           .filter(x->!x.startsWith("abcde"))
	   .collect(Collectors.toList());;
System.out.println(list);

相关推荐

    List.removeAll() 方法的性能效率

    - 避免在高并发环境中使用`removeAll()`,除非必要,否则考虑使用其他同步机制。 - 如果可能,预处理数据或使用更高效的算法来减少元素的比较次数。 - 对于大量重复元素的移除,使用HashSet作为中间数据结构。 总之...

    list用remove实现结构体成员的删除

    总结一下,使用 `list` 的 `remove()` 方法删除结构体成员(对象实例)的关键在于找到要删除的元素,并根据其唯一的标识进行匹配。在实际编程中,我们还需要考虑到异常处理和对原列表的影响,以及选择合适的删除策略...

    remove函数使用详解

    remove函数使用详解 1. 基本使用 2. 删除普通类型元素 3. 删除对象类型元素 4. 一次只删一个元素 1. 基本使用 remove() 函数可以删除列表中的指定元素 语法 list.remove( element ) 1 参数 element:任意数据类型...

    基于C++ list中erase与remove函数的使用详解

    这篇文章主要讲解了`list`中的两个重要成员函数`erase`和`remove`,它们用于删除链表中的元素。理解这两个函数的正确用法对于编写高效且无误的C++代码至关重要。 首先,`erase`函数的主要作用是删除链表中特定位置...

    CSharp_List.zip_C# list_C#中list_C#中list的用法_C#怎么引用List_c# list

    在C#编程中,`List&lt;T&gt;`是.NET框架中常用的一种动态数组,它属于泛型集合,提供了丰富的功能,使得在处理一系列数据时更加灵活高效。`List&lt;T&gt;`类是`System.Collections.Generic`命名空间的一部分,它实现了`IList&lt;T&gt;`...

    STL中list的使用

    在标准模板库(STL)中,`list`容器是一个双向链表,它提供了高效的插入和删除操作,尤其是在列表的头部或尾部进行操作时,性能尤为突出。下面将详细介绍`list`的各种功能和用法。 ### 创建和初始化 1. **空list**...

    删除List中的重复值

    删除List中的重复值 方法一:循环元素删除 // 删除ArrayList中重复元素 public static void removeDuplicate(List list) { for ( int i = 0 ; i &lt; list.size() - 1 ; i ++ ) { for ( int j = list.size() - ...

    【Robotframework】列表List的常用操作.pdf

    9. **Remove Values From List**: 根据值移除列表中的元素,可以一次移除多个。例如,`Remove Values From List ${list} liming` 移除所有值为"liming"的元素。 10. **Sort List**: 对列表进行升序排序。`@{sorted_...

    list的正确remove姿势

    List mList = new ArrayList(); mList.add(1); mList.add(2); mList.add(3); mList.add(4); mList.add(5); /** * 正常删除 */ for (int i = 0;... mList.remove(i); } } printList(mList)

    java计算同一个list中是否有相同的值

    list.remove(j); // 移除重复项 } } if ((list2.size() + 1) &gt; 1) { // 如果有重复项 num = Math.max(num, list2.size() + 1); // 更新最大重复次数 } } System.out.println(num); if (num &gt; 1) { ...

    qml q_property list使用

    例如,你可以定义一个`StudyList`组件,包含一个`list`属性,然后在主QML文件中使用这个组件进行各种操作: ```qml // StudyList.qml Component { id: studyListComp PropertyList { id: studyList type: ...

    list to list 将list内容移到另一个list

    在编程领域,特别是涉及到数据操作的时候,`list` 是一种常用的数据结构,它在Python、JavaScript等语言中广泛使用。`list to list` 操作通常指的是将一个列表(list)的内容移动到另一个列表中,这可能涉及到列表的...

    Java list.remove( )方法注意事项

    `remove()`方法是`List`接口中的一个关键操作,用于从列表中删除指定的元素或根据索引移除元素。在使用`remove()`方法时,需要注意一些重要的细节以避免潜在的问题和错误。下面将详细介绍`List.remove()`方法的两种...

    在Python的列表中利用remove()方法删除元素的教程

    下面的例子显示了remove()方法的使用 #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.remove('xyz'); print "List : ", aList; aList.remove('abc'); print "List : ", aList; 当

    RemoveDrive卸载U盘或者移动硬盘

    例如,在自动化备份过程中,完成数据传输后,可以立即使用RemoveDrive来卸载U盘,避免了因手动操作可能导致的数据丢失或损坏。 RemoveDrive的使用方法通常包括以下几个步骤: 1. 下载并解压压缩包,其中包含...

    C#遍历List并删除某个元素的方法

    在C#编程中,List&lt;T&gt; 是一个常用的集合类,用于存储同类型的对象数组。当我们需要遍历List并根据条件删除特定元素时,需要注意正确的方法,以避免在遍历过程中出现错误。以下将详细介绍如何在C#中遍历List并删除元素...

    C++中list用法

    ### C++中List容器的详细使用方法 #### 容器简介 在C++标准模板库(STL)中,`list`是一种双向链表容器。它主要用于存储数据元素,并且能够高效地进行插入和删除操作。与`vector`或`deque`等其他序列容器相比,`list`...

    C# List使用总结

    通过这些详细讨论和实际代码示例,我们可以更深入地理解C#中`List&lt;T&gt;`、`ArrayList`和`LinkedList&lt;T&gt;`的使用,从而在实际项目中选择最合适的集合类型。在进行性能优化时,应根据具体需求考虑这些集合类的不同特性。

    Python如何在循环内使用list.remove()

    然而,在循环过程中使用`list.remove()`时,可能会遇到一些预料之外的行为,这主要是因为列表的长度在循环过程中发生了改变。本文将深入探讨这一现象,并提供一种更安全的解决方案。 #### `list.remove()`简介 `...

    线性表list_array的源代码(c语言)

    int list_remove(struct list *list, int index); void list_set(struct list *list, int index, int value); void list_add(struct list *list, int index, int value); int list_lookup(struct list *list, int ...

Global site tag (gtag.js) - Google Analytics