Java での 2D ブール配列のディープ コピーの作成
問題:
の使用は避けてください。 2D ブール配列を操作する場合は clone() を使用します。深いコピーではなく浅いコピーが作成されます。
質問:
Java で 2D ブール配列の深いコピーを実行するにはどうすればよいですか?
答え:
元の配列を反復処理して、独立した新しい配列を作成します要素。
Java 6 ソリューション:
public static boolean[][] deepCopy(boolean[][] original) { if (original == null) { return null; } final boolean[][] result = new boolean[original.length][]; for (int i = 0; i < original.length; i++) { result[i] = Arrays.copyOf(original[i], original[i].length); } return result; }
Java 6 より前のソリューション:
// For Java versions prior to Java 6 public static boolean[][] deepCopy(boolean[][] original) { if (original == null) { return null; } final boolean[][] result = new boolean[original.length][]; for (int i = 0; i < original.length; i++) { result[i] = new boolean[original[i].length]; System.arraycopy(original[i], 0, result[i], 0, original[i].length); } return result; }
以上がJavaで2Dブール配列のディープコピーを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。