[JAVA] Array 배열, 이중 배열, 다중 배열[JAVA] Array 배열, 이중 배열, 다중 배열

Posted at 2013. 12. 4. 21:16 | Posted in == JAVA ==/JAVA



facebook에 글올리기



Array 배열, 이차 배열, 다중 배열


1. 배열의 선언


Java에서 배열은 객체이다. 배열을 생성학 위해서는 배열을 반드시 선언해야 한다.


int[] height = new int[11];  or int height[] = new int[11];


변수 height 는 정수의 배열(int[])로 선언되었다. height 배열은 height[0] ~ height[10] 까지의 11개의 정수를 저장할 수 있다.

정수형 배열의 각 인덱스는 기본적으로 0 으로 초기화 된다. (String 배열은 null 이다)

여기서 만약 height[11] 과 같이 배열의 범위를 벗어나면 ArrayIndexOutOfBoundsException이 발생한다.


Java 배열의 크기는 length 를 사용하여 확인 할 수 있다.


height.length  는 11이다. 따라서 height 배열의 마지막 인덱스는 height[height.length-1] 이 된다.


배열은 선언시 다음과 같이 초기화할 수 있다.


char[] alphabet = {'A', 'B', 'C', 'D'};



2. 객체들의 배열


위의 alphabet 배열을 살펴보자.


배열 자체가 객체라는 것을 기억하자.  따라서 alphabet 변수는 위의 그림과 같이 객체를 참조하고 있다.


이번에는 String 객체를 보자


String[] words = new String[4];

위와 같이 선언하면 String 객체를 4개 담고 있는 배열이 선언된다. 하지만 배열의 각 공간에 String 객체를 생성하지는 않는다.
단지 String 객체의 참조들을 저장하기 위한 배열을 생성할 뿐이다.

그러면 Stirng 객체를 배열에 대입하여 보자.


words[0] = "Hello";
words[1] = "Java";

문자열을 바로 대입하였지만, 내부적으로 String 객체가 생성되어 문자열을 담는다.
그러면 배열의 해당 인덱스의 주소가 해당 문자열 String 객체를 참조하게 된다.


String 외의 다른 객체들의 배열도 위와 같이 배열의 인덱스는 객체의 주소를 참조하는 것이다.



3. 가변 길이 매개변수 리스트


어떤 메쏘드가 매개변수로 배열을 받아 처리한다고 한다. 하지만 이 배열의 길이가 고정된 것이 아니라고 하자.


이럴때는 아래와 같이 두가지 방법으로 배열을 매개변수로 넘길 수 있다.


 

private static String[] members;
   
public Arraytest(String...names){
    members=names;
}

 private static String[] members;


 public Arraytest(String[] names){

      members=names;

 }


위 두가지 결과는 모두 같다.

String...names 와 String[] names  모두 같은 방법으로 String[] 배열을 매개변수로 넘기는 방법이다.


4. 이중 배열

위의 배열들은 모두 값들의 간단한 리스트를 나타내는 일차원 배열이다.
이차 배열은 보통 테이블의 행과 열로 생각할 수 있는 이차원으로 값을 가지게 된다.

int[][] table = new int[5][10];


위의 table 배열은 5행 10열의 배열이다. 10개 짜리 배열이 5개 있다고 생각하면 된다.

배열은 아래와 같다.



이차 배열의 초기화는 다음과 같이 할 수 있다.


int[][] table = { {1,2,3,4,5,6,7,8,9,10},
                  {2,3,4,5,6,7,8,9,10,1},
                  {3,4,5,6,7,8,9,10,1,2},
                  {4,5,6,7,8,9,10,1,2,3},
                  {5,6,7,8,9,10,1,2,3,4} };


table.length 를 호출하면 5가  나올 것이고,  table[0].length 를 호출하면 10이 반환된다.



5. 다중 배열


하나의 배열은 2, 3, 혹은 그 이상의 차원을 가질 수 있다. 이차원 이상을 갖는 배열을 다차원 배열이라고 한다.

3차원 배열은 육면체로 그릴 수 있다. 하지만 그 이상의 배열은 그림으로 나타내기 어렵다.

이차원 배열은 매우 일반적이지만 프로그램에서 다차원 배열은 조심해서 사용해야 한다. 여러 레벨에서 방대한 양의 정보를 다루게 되면 관리가 어려워진다.



이웃추가
facebook에 글올리기
  1. 민2융
    좋은 정보 감사합니다.
    앞으로 종종 볼게요
  2. 감사합니다 공부하는데 많은 도움이 됬어요 ^^

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기