如何在java中检查2D数组的元素是否为空?

时间:2014-09-24 00:46:20

标签: java arrays multidimensional-array iteration

我有一个2d数组质心,其每个元素本身就是一个数组。如何查看说centroids[1][1]列表是否包含任何元素?

我认为这段代码可行,但事实并非如此。

 for (int j=0; j<centroids[clusterAssignment[i]].length;j++)
        if(centroids[clusterAssignment[i]].length==0)

首先是因为centroids[clusterAssignment[i]].length没有给出正确的质心数列表,只是告诉我它是2,因为质心有x和y(2d)。 其次,因为我不知道如何在所有可用质心的列表中检查作为数组的clusterAssignment[i]对于质心i的长度是否为零。

更新:此代码不起作用:

for (int i = 0; i < centroids.length; i++){
                    //System.out.println("centroids[clusterAssignment[i]] "+ Arrays.toString(centroids[clusterAssignment[i]]));
                    //System.out.println("clusterassignment of centroid is"+centroids[clusterAssignment[i]]);
                    for (int j=0; j<centroids[clusterAssignment[i]].length;j++)
                    //  System.out.println("cluster assignment of centroid is: "+Arrays.toString(centroids[clusterAssignment[i]]));
                    if (centroids[clusterAssignment[i]] == null){
                        //save the centroid number if there's no point assigned to it
                        orphanCentroid = i;
                        System.out.println("orphan centroid i is "+i);
                        hasOrphanCentroid=true;
                        break;
                    }
                }

1 个答案:

答案 0 :(得分:0)

试试这个:

for (int j=0; j<centroids[clusterAssignment[i]].length;j++)
        if(centroids[clusterAssignment[i]]==null)