[Java] 배열에 대한 이야기

배열에 대한 이야기





배열을 선언하는 방법


 

타입[] 변수이름 ;

타입 변수이름[] ;


이 두가지 모두 가능하지만! 타입[] 변수이름을 사용하자.

 


 배열 선언

 참조 변수를 위한 공간을 만듦

 배열 생성

 저장할 수 있는 공간을 만듦

 

사실 배열도 객체라서 멤버변수와 메서드를 가지고 있다. 멤버변수 length는 배열의 크기에 대한 정보를 가지고 있다. 배열을 for문을 돌릴 때 length를 이용하여 돌리는 것이 좋다.  

 

 




배열 초기화의 두가지 방법

 


int[] num = { 1, 2, 3, 4, 5};

int[] num = new int[][ 1,2,3,4,5};  


이 두가지 모두 가능하지만! 

두번째 방법은 선언과 초기화를 따로 한다면 자칫 에러가 발생한다.

int[] num = { 1, 2, 3, 4, 5};이 방법을 사용하자.

 

 

 



String 클래스의 charAt(int index)는 문자열 중에서 index번째 위치에 있는 문자를 반환한다. 배열처럼 0부터 시작함.

 


public static void main(String[] args) 
{ 
  String src = "LGH";
  for(int i=0; i< src.length() ; i++)
  {
    System.out.println("src.cahrAt("+i+") : " + src.charAt(i));
  }
 }


 



다차원 배열

 


타입[][] 변수 이름 ;

 

int[2][3] num;로 선언했을 때

 

num.length는 몇? 2

num[0].length는 몇? 3

 

num[0].length는 배열 참조변수 num[0]이 참조하고 있는 배열의 크기므로 3이다.

 

2차원 배열 for문은 코드는 아래와 같다.



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


 



가변 배열

 

int[][] num = new in[5][];

num[0] = new int[1];

num[1] = new int[4];

num[2] = new int[5];

num[3] = new int[2];

num[4] = new int[3];

 

마지막 차수의 크기를 지정하지 않고 각기 다른 크기로 배열을 생성하면 된다.


 



배열의 복사

 

배열 간의 내용을 복사하려면 for문을 사용하거나 System클래스의 arraycopy()를 사용하면 된다.

 

arraycopy()는 배열에 저장되어 있는 값만 복사하기 때문에 참조변수 배열인 경우에는 단지 주소값만을 복사할 뿐 참조변수가 가리키고 있는 객체를 복사하지는 않는다.

 

System.arraycopy( arr1, 0, arr2, 0, arr1.length); 

arr1[0]에서 arr2[0]으로 arr1.length개의 데이터를 복사 한다.


arr1의 0 번째를 arr2 0번째 부터 arr1.length개 복사해서 넣기