List<String> lists = new ArrayList<String>();
lists.add("ad");
lists.add("dv");
lists.add("dvs");
lists.add("adf");
for(int i=0;i<lists.size();i++)
{
String s=lists.get(i);
if(s.equals("ad"))
{
lists.remove(s);
}
System.out.println(s);
}
结果
dvs
adf
因为你在lists.remove(s);的时候,ad被删除了,dv放在0的位置,而你for循环的i的值等于1了,打印的是lists(1),这个时候lists(1)值是dvs
解决:
1.可以这样:
for(int i=0;i<lists.size();i++)
{
String s=lists.get(i);
if(!s.equals("ad"))
{
System.out.println(s);
}
}
结果是
dv
dvs
adf
2.
for(int i=0;i<lists.size();i++)
{
String s=lists.get(i);
if(s.equals("ad"))
{
lists.remove(s);
i=i-1;
continue;
}
System.out.println(s);
}
结果是
dv
dvs
adf
分享到:
相关推荐
需要注意的是,这里使用`iterator.remove()`而不是`list.remove()`来删除元素,这可以避免并发修改异常。 ### 三、使用HashSet特性去除重复元素 这种方法利用了HashSet的特性,即HashSet不允许有重复的元素。将...
另一种方法是在遍历时使用索引,这样可以在删除元素时更新索引,确保不会错过任何元素: ```python list1 = [1, 2, 3, 4, 5, 6] i = 0 while i (list1): if list1[i] == 2: list1.pop(i) else: i += 1 print...
C#中,foreach遍历删除集合中元素是很常见的操作,但是删除元素时,集合的大小和元素索引值会发生变化,从而导致在foreach中删除元素时会抛出异常。下面我们将介绍三种实现方法,帮助大家更好地理解和使用C#。 方法...
这将输出列表 `list_4` 中的第二个和第三个元素。 ### 查找列表中的最大和最小元素 我们可以使用 `max` 和 `min` 函数来查找列表中的最大和最小元素。例如: ``` list_5 = [1, 2, 3, 4, 5] print(max(list_5)) ...
ArrayList是Java集合框架中的一种动态数组,允许在任何位置插入和删除元素,具有较高的灵活性。 以下是对给定代码的详细解释: 1. **ArrayList类**:ArrayList继承自AbstractList并实现了List接口,它使用可变大小...
`List`接口提供了多种方法来操作列表,如添加元素(`add()`)、删除元素(`remove()`)、获取元素(`get()`)等。常见的`List`实现有`ArrayList`和`LinkedList`。 3. **输入转化**:输入可以来自用户键盘输入、文件...
除了上述操作,顺序表还支持其他常见操作,如插入元素(`insert_list`)和删除元素(`delete_list`)。`insert_list`函数在指定位置插入元素,如果表已满则返回错误。而`delete_list`函数删除指定位置的元素,确保...
在C++中,我们首先定义了一个名为`linearList`的模板类,它代表一个抽象基类,包含了一些基本操作的纯虚函数,如判断是否为空、获取元素数量、获取指定索引的元素、查找元素索引、删除元素和插入元素。接下来,我们...
7. 删除元素 `remove()`方法删除指定的元素: ```python my_list.remove('two_bis') print(my_list) # 输出:[1, 2, 'three', 4.5, 'new'] ``` `pop()`方法删除并返回指定索引的元素,不提供索引时默认删除最后一...
- 在循环中直接删除元素会导致索引错乱,建议使用 `while` 循环结合索引的方式。 - 使用 NumPy 的 `unique()` 函数可以方便地去除重复元素并排序,适用于需要处理大量数据的情况。 #### 五、参考资料 - 在线去除...
// 输出删除元素后的 list std::cout 删除元素后的 list: "; for (int num : myList) { std::cout ; // 输出每个元素 } std::cout ; // 换行 return 0; } ``` #### 四、深入理解`list` 1. **插入操作**:在...
在Java编程语言中,使用for循环来遍历并删除集合元素时,需要注意一个常见的陷阱,即在循环过程中直接修改集合的结构可能导致意外的结果。这个问题主要出现在增强for循环(也称为foreach循环)和常规for循环中,但...
首先,我们来看一个基本的删除元素的方法——`unset()`函数。`unset()`可以用来销毁变量,包括数组中的元素。例如: ```php $arr = array('a', 'b', 'c', 'd'); unset($arr[1]); print_r($arr); ?> ``` 运行这段...
需要注意的是,在使用 asList() 方法或 ArrayList 的构造函数将数组转换为 List 时,返回的 List 对象是一个固定长度的列表,不能进行添加或删除元素的操作。如果需要对转换后的 List 进行修改操作,可以使用方法 3 ...
然而,在循环过程中使用`list.remove()`时,可能会遇到一些预料之外的行为,这主要是因为列表的长度在循环过程中发生了改变。本文将深入探讨这一现象,并提供一种更安全的解决方案。 #### `list.remove()`简介 `...
例如,在循环过程中删除元素可能会导致跳过一些元素,或者在循环体内增加元素可能会导致无限循环。 另外,当需要对列表进行逆序遍历时,可以使用`reversed()`函数或者`range()`函数倒序生成索引值。 以上便是通过...
然而,当涉及到动态添加或删除元素时,数组并不方便,因为它在创建时必须指定长度,并且一旦创建,长度就不能改变。这时,我们可以转向使用集合类,如ArrayList,它提供了更灵活的方法来管理元素。 本示例中,我们...
例如,创建一个链表,向链表中插入元素,查找特定元素,打印链表,以及删除元素。这样的实现方式易于理解和使用,适合初学者学习双向循环链表的基本操作。 双向循环链表的应用广泛,特别是在需要高效地进行前向和后...
在Java编程中,循环单链表是一种特殊的数据结构,它扩展了传统的单链表概念,使得链表的最后一个元素指向第一个元素,形成了一个无尽的循环。这种数据结构在处理循环逻辑或者需要快速访问链表头尾的情况时非常有用。...