簡體   English   中英

復制具有一些值 null 的二維數組

[英]Copy a 2D array with some of the values null

我在最后很容易地添加了 java.util.Arrays 到深度打印(對於這個例子),但我不能用它來復制數組

我需要復制這個二維數組,但我似乎無法弄清楚如何用 null 替換我創建的內部數組。 我主要評論了我需要做什么。

我創建了一個與原始數組大小相同的數組,但它在內部循環中放置了 3 個 null 值,因為我以這種方式初始化了數組,但我不知道如何初始化數組,並使其長度相同。

import java.util.Arrays;

public class makeCopyOfArray {

  public static String[][] copyArray() {

    String[][] array = new String[][] {{"1", "1", "1"}, {"2", "2", "2"}, null, null, null};
    String[][] arrayCopy = new String[array.length][array[1].length];

    for (int i = 0; i < array.length; i++) {
      
      if (array[i] == null) {
        continue;
      }

      for (int j = 0; j < array[i].length; j++) {
        arrayCopy[i][j] = array[i][j];
      }
    }

    return arrayCopy;
  }

  public static void main(String[] args) {

    System.out.println(Arrays.deepToString(copyArray()));
    // prints out
    // [[1, 1, 1], [2, 2, 2], [null, null, null], [null, null, null], [null, null, null]]

    // need it to print out
    // [[1, 1, 1], [2, 2, 2], null, null, null]
  }
}



我想到了。 我剛剛創建了一個用 null 填充的數組的副本。

import java.util.Arrays;

public class makeCopyOfArray {

  public static String[][] copyArray() {

    String[][] array = new String[][] {{"1", "1", "1"}, {"2", "2", "2"}, null, null, null};
    String[][] arrayCopy = new String[array.length][]; //create an array with just empty null

    //loop through array and copy to arrayCopy the inner lists that are not null.

    for (int i = 0; i < array.length; i++) {
      
      if (array[i] != null) {
        
        arrayCopy[i] = array[i];
      }
    }
    return arrayCopy;
  }

  public static void main(String[] args) {

    System.out.println(Arrays.deepToString(copyArray()));
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM