删除数组的一部分,当这个方法通过时,我得到一个零点异常。我如何能够跳过具有null
值的数组?
public static int getTotal(Candidate[] list)
{
int total = 0;
for(int i = 0; i < list.length; i++)
{
total = list[i].getVotes() + total;
}
return total;
}
答案 0 :(得分:4)
你可以这样做:
total += list[i] != null ? list[i].getVotes() : 0;
在Java 8中,您的方法如下:
public static int getTotal(Candidate[] list) {
return Stream.of(list)
.filter(s -> s != null)
.collect(Collectors.summingInt(Candidate::getVotes));
}
答案 1 :(得分:0)
public static int getTotal(Candidate[] list)
{
int total = 0;
for(int i = 0; i < list.length; i++)
{
if (list[i] != null)
{
total = list[i].getVotes() + total;
}
}
return total;
}
答案 2 :(得分:0)
使用空检查保护它:
public static int getTotal(Candidate[] list)
{
int total = 0;
if (list != null)
{
for(int i = 0; i < list.length; i++)
{
if (list[i] != null)
{
total = list[i].getVotes() + total;
}
}
}
return total;
}