배열(Array) 이란? -배열 선언/생성/초기화/다차원,가변 배열

2020. 11. 6. 10:28자바 Java/자바 공부 java study

반응형

배열이란 무엇일까? 

같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 '배열'이라고 한다. 

 

 

 

배열의 선언  // 생성된 배열을 다루는데 사용될 참조 변수 선언 (주소) 

타입 [] 변수 이름; 

타입 변수이름 []; 

 

 

 

배열의 생성 // 값을 저장할 수 있는 공간 생성 

변수 이름 = new 타입[배열크기]; 

 

배열도 객체이기 때문에 멤버 변수와 메서드를 갖고 있으며 이중 멤버 변수 length는 배열의 크기에 대한 정보 담음 

배열은 한번 생성 되면 크기를 변경 할 수 없기 때문에 배열의 length는 변하지 않는다. 

 

 

 

배열의 초기화

 

배열이 생성될 때 각 타입의 기본 값으로 초기화 된다. 

자료형 기본값
boolean false
int 0
참조형 변수(ex String) null 

원하는 값으로 초기화 하고 싶을 경우 

 

기초형인 경우 

 

int [] score = new int [3];

score [0] = 100;

score [1] = 90;

score [2] = 80;

 

or 

 

int [] score = {100,90,80};

 

 

참조형인 경우 

String[] name = new String[2];

name [0] = new String ("Kim");

name [1] = new String ("Park");

 

or 

 

String [] name= {new String("Kim"), new String("Park")};

 

or 

 

String [] name = { "Kim", "Park" } ;

 

or

 

String [] name = new String [] { new String ("Kim") , new String ("Park") }; 

 

 

 

* ArrayIndexOutOfBoundsException (배열의 index가 배열의 범위를 벗어났다는 에러)

 

* String클래스의 charAt(int idx) 는 문자열 중에서 idx 번째 위치에 있는 문자를 반환한다. 

(String 클래스는 char 배열을 내부 데이터로 갖고 있으며 char 배열을 다루는데 필요한 다양한 메서드를 제공한다.) 

 

 

다차원 배열 

 

선언방법 

타입 [] [] 변수이름 ; 

타입 []  변수이름 [] ; 

 

3차원 이상의 고차원 배열은 [] 개수를 차원 수 만큼 추가 (실제로는 2차원 이상 잘 사용 하지 않음) 

 

2차원 배열은 주로 테이블 형태의 데이터 담는데 사용 

 

ex) 5행 3열의 테이블 생성시 

                                      행  열 

int [] [] score = new int [5] [3] ; 

 

score [0][0] ~ score [5][3] 까지  15개의 공간 생김 

 

저장하는 방법 

score [0][0]=100; 

score [0][1]= 100; 

.....

 

or 

 

int [] [] score = new int [] [] { {100,100,100}, {20,20,20} ..... } ; 

100 100 100
20 20 20
30 30 30
40 40 40
50 50 50

 

 

이차원 배열 

 

 

score.length = 5 ;

score[0].length = 3 ;

 

 

 

가변 배열 

2차원 이상의 배열에 대해서 '배열의 배열' 형태로 처리한다는 사실을 이용하면 자유로운 형태의 배열을 구성할 수 있다. 

 

int [] [] score = new int[5] [];   // 두번째 차원의 크기는 지정하지 않는다. 

score[0] = new int [4] ; 

score[1] = new int [1] ;

score[2] = new int [3] ;

score[3] = new int [2] ;

score[4] = new int [4] ;

 

가변 배열

 

 

 

배열의 복사 

 

1. For 문을 사용 ( 기존 배열 보다 더 큰 크기의 새로운 배열을 만든 다음 기존 배열의 내용을 for 문을 사용해서 복사) 

2. System 클래스의 arraycopy() 사용 

 

 

 

 

참조 : 자바의 정석 책 

 

반응형

'자바 Java > 자바 공부 java study' 카테고리의 다른 글

입출력-미완성  (0) 2020.03.18
스레드(thread)&멀티스레드&동기화-미완성  (0) 2020.03.17
예외처리 (Exception )  (0) 2020.03.17
래퍼클래스 (wrapper class)  (0) 2020.03.16
제네릭(generic) -미완성  (0) 2020.03.16