본문 바로가기
Java & JSP

2차원 배열 가지고 놀기

by BeGeek 2015. 3. 6.

ArrayTwoInit.java

 
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();
  }
 }
}

결과출력

 2차원 배열1
[1][2][0]
[0][0][0]
[0][0][0]
[0][0][5]
2차원 배열2
[0][0][0][0]
[0][0][0][0][0]
[0][0][0][0][0][0]
2차원 배열3
[1][2][3][4][5]
[2][3][4][5][6]
[6][7][8][9][0]
2차원 배열4
[1][2][3][4][5]
[2][3][4][5][6]
[6][7][8][9][0]
copy1
[1][2][3][4][5]
[2][3][4][5][6]
[6][7][8][9][0]
copy2
[-4][2][3][4][5]
[2][3][4][5][6]
[6][7][8][9][0]
copy3
[-400][2][3][4][5]
[2][3][4][5][6]
[6][7][8][9][0]

 

댓글