使用子方法 JAVA 从数组中删除字符串



我需要使用方法"remove",该方法接受字符串的数组列表和目标字符串作为两个参数,并从数组列表中搜索和删除所有匹配的字符串。例如,在 ArrayList ["Go"、"Go"、"Go"] 和目标字符串 "Go" 上调用 remove 将导致空的 ArrayList。

public class Remove {
public static void main (String [] args) {
ArrayList<String> x = new ArrayList<>();  
x.add("Go");
x.add("Go");
x.add("Go");
System.out.println(x);
remove("Go");
System.out.println(x);
}
public static void remove(String t) {
ArrayList<String> x = new ArrayList<>();
for(int i = 0; i < x.size(); i++) {
if(x.get(i).equals(t)) {
x.remove(i);
i--;
}
}
}
}

remove方法创建一个新ArrayList,然后尝试从中删除值。相反,您应该将列表传递给该方法。此外,使用 JDK 8 的removeIf方法会使您的代码更简单:

public static void main (String [] args) {
List<String> x = new ArrayList<>();  
x.add("Go");
x.add("Go");
x.add("Go");
System.out.println(x);
remove(x, "Go");
System.out.println(x);
}
public static void remove(List<String> list, String t) {
list.removeIf(s -> s.equals(t));
}

最新更新