gpt4 book ai didi

java - 数组列表索引越界异常索引 0 大小 0

转载 作者:行者123 更新时间:2023-12-01 22:02:56 31 4
gpt4 key购买 nike

只是想知道为什么我在 matches.set(count,size) 运行基本上是深度优先搜索算法后遇到索引出界异常?

当我尝试在数组列表中的位置 0 处运行它时,出现错误,这在默认索引为 0 时看起来很奇怪。

public void findInheritance(HashMap<String, ArrayList<String>> h, ArrayList<String> a) {

Queue<String> search = new LinkedList();
ArrayList<Integer> matches = new ArrayList<Integer>();
int count = 0;
String toBeSearched;
int size = 0;

for (String key: a) {
size = 0;
if (h.get(key).size() > 0 || h.get(key) == null) {
search.addAll(h.get(key));
while (search.size() > 0) {
size++;
toBeSearched = search.poll();
if (h.get(toBeSearched).size() > 0) {
search.addAll(h.get(toBeSearched));
}
}
}
matches.set(count, size);
count++;
}

int smallcount = 0;
for (String b: a) {
System.out.println(b);
System.out.println(matches.get(smallcount));
smallcount++;
}
}

最佳答案

ArrayList<Integer> matches = new ArrayList<Integer>();
[...]
matches.set(count, size);

列表为空,因此索引 count 处没有任何内容,因此无法替换。

另外,

if (h.get(key).size()>0 || h.get(key) == null) {

这一行是错误的:如果h.get(key)可以为null,那么它将导致NullPointerException。您还应该调用一次 get() 并将结果存储在变量中。

关于java - 数组列表索引越界异常索引 0 大小 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33420365/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com