跳过空数组

时间:2014-03-22 16:13:48

标签: java arrays

删除数组的一部分,当这个方法通过时,我得到一个零点异常。我如何能够跳过具有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;  
    }  

3 个答案:

答案 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;  
}