public class ArrayTwoInit { public static void main(String[] args){ //2차원 배열1 System.out.println("2차원 배열1"); int[][] a = new int[4][3]; a[0][0]=1; a[0][1]=2; a[3][2]=5; println(a); //2차원 배열2 System.out.println("2차원 배열2"); int[][] b = new int[3][]; b[0] = new int[4]; b[1] = new int[5]; b[2] = new int[6]; println(b); //2차원 배열3 System.out.println("2차원 배열3"); int[][] c = new int[][]{{1,2,3,4,5},{2,3,4,5,6},{6,7,8,9,0}}; println(c); //2차원 배열4 System.out.println("2차원 배열4"); int[][] g = {{1,2,3,4,5},{2,3,4,5,6},{6,7,8,9,0}}; println(g); //copy1 System.out.println("copy1"); int[][] d = new int[c.length][c[0].length]; //3*5 for(int i=0; i < c.length; i++){ System.arraycopy(c[i], 0, d[i], 0, d[i].length); //배열의 값을 복사.원본과 복사본이 서로 연계 되지 않음 } c[0][0] = -5; println(d); //copy2 System.out.println("copy2"); int[][] e = new int[c.length][c[0].length]; System.arraycopy(c,0,e,0,e.length); //배열의 참조를 복사. 원본과 복사본이 서로 연계 되게됨 c[0][0] = -4; println(e); //copy3 System.out.println("copy3"); int[][] f = new int[c.length][c[0].length]; f = e; //shallow copy e[0][0] = -400; println(f); } public static void println(int[][] p){ for(int i=0; i<p.length; i++){ for(int j=0; j<p[i].length;j++){ System.out.print("["+p[i][j]+"]"); } System.out.println(); } } }
|
댓글