有一个输入字符串集合和一个查询字符串集合。对于每个查询字符串,确定它在输入字符串列表中出现的次数。返回结果的数组。
public static List<Integer> matchingStrings(List<String> strings, List<String> queries) {
List<Integer> s = new ArrayList<Integer>(queries.size());
for(int i = 0;i<queries.size();i++){
s.set(i,0);
}
for(int i = 0;i < queries.size();i++){
for(int j = 0; j<strings.size();j++){
if((strings.get(j)).equals(queries.get(i))){
s.set(i,(s.get(i)+1));
}
}
}
return s;
}
//线程"main"indexoutofboundsexception:索引0超出长度0的边界在java.base/jdk.internal.util.Preconditions.outOfBounds (Preconditions.java: 64)在java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex (Preconditions.java: 70)在java.base/jdk.internal.util.Preconditions.checkIndex (Preconditions.java: 248)在java.base/java.util.Objects.checkIndex (Objects.java: 359)在java.base/java.util.ArrayList.set (ArrayList.java: 441)在Result.matchingStrings (Solution.java: 27)Solution.main (Solution.java: 68)
让我们看一个例子:
List<String> arr = new ArrayList<String>();
System.out.println(arr.get(0));
给出Index 0 out of bounds for length 0
.
这意味着你的数组列表是空的&您正在尝试访问它的元素。
同样发生在你的情况下,检查你的数组列表是否有空&你试图在第二个for
循环中使用get
访问元素。