Arraylist存入多个相同元素,遍历删除为什么会剩一个
时间: 2024-09-13 20:08:56 浏览: 72
ArrayList是一个动态数组实现的List接口,它允许你在运行时添加、删除和访问元素。当你向ArrayList中插入多个相同的元素时,它的内部机制并不会自动去重。当你尝试遍历并删除其中的某个特定元素时,如果这个元素恰好是你第一次添加的那个,其他的重复元素并未改变它们的位置。
例如,假设你有如下的操作:
```java
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("apple");
list.add("banana");
// 删除第一个出现的"apple"
while (list.contains("apple")) {
list.remove("apple");
}
// 遍历后的list会剩下最后一个"apple"
for (String item : list) {
System.out.println(item); // 输出 "apple"
}
```
在这个例子中,虽然`contains()`方法会找到所有"apple"并删除,但由于添加的顺序,最后只会留下最后一次添加的"apple",因为其他"apple"并没有被移除。如果你想完全删除所有的重复项,可以考虑使用`removeAll()`方法配合`equals()`或`HashSet`来进行操作。
阅读全文