1. 배열(array)이란?

  • 같은 타입의 여러 변수를 하나의 묶음으로 표시한다
  • 배열이 가진 각각의 값을 배열의 요소(element)라고 한다

 

2. 배열의 선언

  • '타입[ ] + 참조변수' 또는 '타입 + 참조변수[ ]' 의 형태로 선언한다
  • 배열의 선언은 참조변수를 위한 저장공간을 등록한다는 의미이다

※ 참조 변수

  • 참조 타입의 값을 가지고 있는 변수를 의미한다
  • 변수가 특정 값을 저장하고 있는 것이 아니라 값이 저장될 시작 주소의 값을 저장한다

 

3. 배열의 생성

  • '참조변수 = new 타입[index]' 의 형태로 생성한다
  • 배열 선언과 함께 '타입[ ] + 참조변수 = new 타입[index] 로도 사용한다
  • index는 저장 공간의 개수를 의미한다
  • index의 개수만큼 타입에 맞는 저장 공간이 연속적으로 생성된다
  • 배열은 타입의 종류와 index의 크기에 따라 메모리 크기가 유동적으로 확보된다

※ 인덱스(index)

  • 참조변수[ ]에 배열의 값이 각각 자동으로 대입되며, 대입되는 값의 번호를 인덱스(index)라고 한다
  • index 의 범위는 0부터 '배열길이-1' 까지이며 '-1'을 하는 이유는 '0'부터 시작하기 때문이다
ublic class Grade {
    public static void main(String[] args) {
        int a=0, b=1, c=2, d=3, e=4; //a,b,c,d,e의 초기값 선언-5개 변수 사용

        System.out.println(a); //a의 결과값 출력
        System.out.println(b); //b의 결과값 출력
        System.out.println(c); //c의 결과값 출력
        System.out.println(d); //d의 결과값 출력
        System.out.println(e); //e의 결과값 출력

        int[] score = new int[5]; //int 타입의 참조변수 score에 대해 5개의 저장공간을 확보
        score[0] = 1;
        score[1] = 2;
        score[2] = 3;
        score[3] = 4;
        score[4] = 5;
        System.out.println(score[0]);//score의 0번째 값
        System.out.println(score[1]);//score의 1번째 값
        System.out.println(score[2]);//score의 2번째 값
        System.out.println(score[3]);//score의 3번째 값
        System.out.println(score[4]);//score의 4번째 값
    }
}


result
0
1
2
3
4
1
2
3
4
5

//다중 변수의 연속 사용과 한개의 변수에 여러 값 사용의 차이
  • 위에서 int a=0 은 정수 a에 대한 메모리 공간 4byte 1개를 확보한다
  • score는 int[5] 를 통해서 메모리에 5개의 저장공간을 연속으로 확보한다
  • '타입[ ] + 참조변수 = new 타입[ ]{요소 값}'  처럼 사용하기도 한다
public class Grade {
    public static void main(String[] args) {

        int[] score = new int[]{1,2,3,4,5}; //int 타입의 참조변수 score에 대해 5개의 저장공간을 확보

        System.out.println(score[0]);//score의 0번째 값
        System.out.println(score[1]);//score의 1번째 값
        System.out.println(score[2]);//score의 2번째 값
        System.out.println(score[3]);//score의 3번째 값
        System.out.println(score[4]);//score의 4번째 값
    }
}

result
1
2
3
4
5
  • .length 를 사용하여 배열의 길이를 확인할 수 있다

 

4. 다차원 배열

 1) 다차원 배열이란?

  • 1차원 이상의 논리적인 구조를 가진다는 의미이다
  • 배열이 배열의 요소로 사용되는 경우이다

 2) 2차원 배열

  • '타입[ ][ ] + 참조변수' 또는 '타입 + 참조변수[ index1] [index2] ]' 의 형태로 선언한다
  • 동일한 방식으로 반복되면 3차원, 4차원,...다차원 배열이 된다

 

 

5. 문자열 배열

  • 문자열 배열은 문자 배열과 문자열을 배열하는 방법이 있다
  • 문자를 배열할 경우에는 char[ ] 또는 char[ ] [ ]를 사용한다
더보기
char [ ] [ ] Arry = new char [ index1 ] [ index2 ] ;
  //index1 : 문자의 갯수를 입력한다
  //index2 : 해당 배열에 해당하는 문자열의 갯수를 입력한다
Arry [1] = ' 문자 ' ;
Arry [2] = ' 문자 ' ;
// 가변 배열로 2차원 배열 선언
char[][] letters = new char[3][];
letters[0] = new char[5];
letters[1] = new char[4];
letters[2] = new char[5];

letters[0][0] = 'H';
letters[0][1] = 'e';
letters[0][2] = 'l';
letters[0][3] = 'l';
letters[0][4] = 'o';

letters[1][0] = 'J';
letters[1][1] = 'a';
letters[1][2] = 'v';
letters[1][3] = 'a';

letters[2][0] = 'W';
letters[2][1] = 'o';
letters[2][2] = 'r';
letters[2][3] = 'l';
letters[2][4] = 'd';

 

  • 문자열을 배열할 경우에는 String[ ]을 사용한다
더보기
String [ ] Arry = new String [ index ]
  - index : 단어의 갯수를 입력한다 
Arry [1] = " 단어 " ;
Arry [2] = " 단어 " ;

※ 문자와 문자열을 담는 기호에 주의한다

// 선언 후 각 배열에 값을 넣어 초기화하는 경우
String[] str = new String[3];
str[0] = "Hello";
str[1] = "Java";
str[2] = "World";

// 선언과 동시에 값을 넣어 초기화하는 경우
String[] str = new String[] {"Hello", "Java", "World"};
String[] str = {"Hello", "Java", "World"}; // new String[] 생략 가능

// String Class를 사용해서 선언하고 초기화하면 이렇게 간편하게 만들 수 있다
String str = "Hello Java World";

 

6. 객체의 배열

  • 객체 배열 == 참조변수 배열
  • 객체는 참조변수의 집합이므로 객체배열 또한 참조변수의 배열과 같다
  • Speak 클래스의 참조변수 speak1, speak2, speak3는 아래와 같이 작성할 수 있다
    Speak speak1, speak2, speak3; // Spaea[ ] speakArr = new Speak[3];

 

'JAVA' 카테고리의 다른 글

자료구조 - 스택(Stack)  (0) 2022.05.26
Java - 문자열(String)  (0) 2022.05.22
Java - 변수(variable)  (0) 2022.05.22
Java - 타입(Type)  (0) 2022.05.19
Java - 개요3. 파일 생성  (0) 2022.05.19

+ Recent posts