使用空值排序2d数组

时间:2014-08-20 12:53:41

标签: java arrays sorting null multidimensional-array

试图寻找其他一些相关的例子,但找不到任何解决问题的方法。我有一个2D阵列。我需要按照数字顺序放置这些,但同时将myArray [x] [0]中的值更改为它出现在

中的行
String[][] myArray = {
{"1", "john", "smith", "12345"}, 
{null, null, null, null}, 
{"3", "sam", "smith", "54321"},
{"5", "paul", "long", "15243"},
{"4", "simon", "short", "51423"}
};

应该成为

    {"1", "john", "smith", "12345"},  
    {"2", "sam", "smith", "54321"},
    {"3", "simon", "short", "51423"}
    {"4", "paul", "long", "15243"},
    {null, null, null, null}

我尝试过使用compareTo()但是在获取一些错误时使用null值。任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

使用boolean ==。

检查它是否为null
if(myArray[x][y] == null)
{
    //Move to end...
}

答案 1 :(得分:0)

我看到这个的方式,你可以通过两次通过来解决它。

  1. 首先,您需要执行更自定义的排序,以检查空值。

    您是否尝试过使用Arrays.sort方法?其中一个重载变体允许使用自定义Comparator

    您可以实现一个Comperator来执行复杂的排序逻辑,并检查null值。

  2. 其次,您需要遍历已排序的数组并修改每行中的第一个值。

    int index = 1;
    for (String[] row : myArray) {
        if (row[0] != null) {
            row[0] = String.valueOf(index);
        }
        index++;
    }