在Java编程中,我们经常需要对数据结构进行遍历操作,并根据业务需求删除部分元素。而数组列表(ArrayList)是集合类中的一种,它可以动态地添加和删除元素,非常适合在程序中使用。本篇博客将总结ArrayList中的两种遍历和删除元素的方式。
在下面的示例代码中,我们先定义了一个ArrayList对象,并向其中添加了若干个字符串元素:
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("b");
list.add("b");
list.add("c");
list.add("d");
list.add("f");
接下来,我们将采用两种方式来遍历并删除ArrayList中的元素。
-
使用Iterator迭代器遍历和删除元素:
使用ArrayList的iterator()
方法可以返回一个实现了Iterator
接口的迭代器对象。因为Iterator接口中提供了remove()
方法,所以通过Iterator迭代器可以方便地遍历并删除ArrayList中的元素。
以下是使用迭代器遍历和删除元素的代码:
Iterator<String> it = list.iterator();
while(it.hasNext()){
String s = it.next();
if("b".equals(s)){
it.remove();
}
}
这里通过调用ArrayList对象的iterator()
方法获取一个实现了Iterator接口的迭代器对象it
,然后使用while
循环和hasNext()
方法遍历集合中的元素,如果值等于"b",则调用remove()
方法将其从集合中删除。
-
使用普通for循环遍历和删除元素:
由于ArrayList是一个基于数组实现的数据结构,因此可以使用普通的for循环来遍历和删除其中的元素。由于删除元素后,原本在这个位置之后的元素都要往前移动一位,所以需要注意修改下标的值,否则会出现数据丢失或IndexOutOfBoundsException等异常情况。
以下是使用普通for循环遍历和删除元素的代码:
for(int i=0;i<list.size();i++){
if("b".equals(list.get(i))){
list.remove(i);
i--;
}
}
这里通过size()
方法获取ArrayList中元素的数量,并使用普通的for循环遍历集合,如果当前元素的值等于"b",则调用remove()
方法将其从集合中删除,同时将下标减1。
最终,我们可以使用以下两个方法来测试上述逻辑:
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("b");
list.add("b");
list.add("c");
list.add("d");
list.add("f");
Iterator<String> it = list.iterator();
while(it.hasNext()){
String s = it.next();
if("b".equals(s)){
it.remove();
}
}
System.out.println(list);
for(int i=0;i<list.size();i++){
if("b".equals(list.get(i))){
list.remove(i);
i--;
}
}
System.out.println(list);
}
以上就是关于Java中ArrayList的遍历和删除元素的两种方式的总结。
今后会将总结一些常用的遍历方法,便于以后工作学习使用。
标签:遍历,Java,删除,ArrayList,元素,list,add From: https://www.cnblogs.com/new-one/p/17343736.html