大家好,又见面了,我是你们的朋友全栈君。
一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为”abc”的字符串元素,请用代码实现。
方法一、for循环遍历
很简单,直接上代码:
import java.util.*;
public class Test1{
public static void main(String args[]) {
List<String> aList = new ArrayList();
aList.add("a");
aList.add("ab");
aList.add("abc");
aList.add("abc");
aList.add("abcr");
aList.add("abc");
aList.add("abcf");
aList.add("abc");
aList.add("abdc");
// 删除过程
// aList.add("a");
// aList.add("ab");
//
// aList.add("abc");
// aList.add("abcr");
//
// aList.add("abcf");
//
// aList.add("abdc");
for(int i=0;i<aList.size();i++) {
if(aList.get(i).equals("abc")) {
System.out.println(i+":"+aList.get(i));
aList.remove(i); // 删除后 下标调整 导致漏删
}
}
System.out.println(aList);
}
}
结果:
2:abc
4:abc
5:abc
[a, ab, abc, abcr, abcf, abdc]
方法二、迭代遍历
import java.util.*;
public class Test1{
public static void main(String args[]) {
List<String> aList = new ArrayList();
aList.add("a");
aList.add("ab");
aList.add("abc");
aList.add("abc");
aList.add("abcr");
aList.add("abc");
aList.add("abcf");
aList.add("abc");
aList.add("abdc");
Iterator<String> iter = aList.iterator();
while(iter.hasNext()) {
if(iter.next().equals("abc")) {
iter.remove();
}
}
System.out.println(aList);
}
}
结果:
[a, ab, abcr, abcf, abdc]
为了避免漏删的情况,最好使用迭代器的方式遍历删除元素,因为迭代器是根据后一个索引来删除元素的,而不是下标。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163119.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...