有一个ArrayList
“allVariables”包含一个整数数组。我需要查找此数组是否包含数字1.如果是,则答案应为false,否则为true。
我写了一些代码,但结果是java.lang.NullPointerException
:
private boolean notIncluded(int ind, ArrayList<Color> c) {
ArrayList<Integer[]> allVariables = new ArrayList<Integer[]>();
// Filling the ArryList
for (int k = 0; k < c.size(); k++) {
allVariables.add(c.get(k).getColor()); // returns Integer[]
}
if (Arrays.asList(allVariables).contains(1)) {
return false;
}
return true;
}
答案 0 :(得分:1)
对于包容性检查,请勿使用List
数据结构。这正是我们Set
(或者更具体地说是HashSet
)的原因。
如果您可以找到将ind
映射到Color
实例的方法,则可以快速进行“包含”检查。
答案 1 :(得分:1)
尝试对c
和c.get(k)
执行空检查。
答案 2 :(得分:1)
Arrays.asList(allVariables)
:allVariables不是一个数组,它是一个数组列表!
答案 3 :(得分:1)
您需要在代码中检查空值。下面的代码尝试实现您需要的内容并检查进程中的空值:
public function allVariablesContains(List<Integer[]> allVariables, int intToSearchFor)
{
if (allVariables == null)
return false;
for (int i = 0; i < allVariables.Length; i++)
{
if (allVariables[i] == null)
continue;
if (Arrays.asList(allVariables).contains(intToSearchFor))
return true;
}
return false;
}