Java Day 6 배열
09 Dec 2020 | JavaJava Day 6 배열
-
배열
-
같은 자료형들끼리 모아두는 하나의 묶음
-
참조자료형 - 메모리의 번지를 값으로 갖는다, 번지를 통해 객체를 참조
-
한 번 생성된 후 크기를 변경 할 수 없다
-
NullPointerException
변수를 선언하고 new 연산자로 초기화하지 않은 상태에서 인덱스로 값을 집어넣을 경우
배열은 초기 주소값으로 null 을 가지고 있어서 참조를 한 뒤에 사용해야한다.
-
선언과 초기화
int[] arr; // 배열의 선언 arr = new int[3]; // new 연산자로 초기화 arr = new int[3]{1,2,3}; // 초기화와 동시에 할당 arr = {1,2,3}; // compile error ---> int[] arr = {1,2,3};과 같이 써야함
-
-
1차원 배열
- 배열은 1차원의 연속이다
-
다차원 배열
- 다차원 배열의 선언
int[][] arr; // [raw][column] int arr[][]; int[] arr[];
- 다차원 배열의 초기화
int[][] arr; arr = new int[2][2];
- 다차원 배열의 길이
int[][] arr = new int[2][3];
System.out.print(arr.length); //output : 2 출력
배열 arr은 힙 메모리 영역에 2개의 row를 참조하고 있고, 각각의 row는 column을 참조하고 있으므로 arr의 길이는 2가 된다.
-
가변길이
- 다차원 배열에서 row의 각각의 column 길이는 일정하지 않을 수 있다
int[][] arr = new int[3][]; //row만 참조 arr[0] = new int[2]; //각각의 column 참조 arr[1] = new int[3]; arr[2] = new int[1]; //1행은 2열. 2행은 3열, 3행은 1열
-
배열 복사
-
배열은 크기를 변경 할 수 없으므로 크기를 바꿀려면 원하는 크기의 배열을 생성한 후 기존의 것을 복사해와야한다
-
System.arraycopy(복사할 배열, 시작위치(복사할배열), 복사해서 저장할 배열, 시작위치(저장할 배열), 개수)
String[] arr = {"하","이","루"}; String[] arr2 = new String[4]; arr2[3] = "!"; System.arraycopy(arr, 0, arr2, 1, 3); // arr2 출력 : 하이루!
-
참고 자료
KG아이티뱅크 자바 강의자료