배열 : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
배열 선언 : 배열을 다루기 위한 참조변수 선언
[선언방법]
1. 타입[] 변수이름;
2. 타입 변수이름[];
int[] score; // 배열 선언
score = new int[5]; // 배열 생성(실제 저장공간 생성)
score.length;
배열은 한번 생성하면 실행하는 동안 그 길이를 바꿀 수 없다.
why? : 바로 옆에 메모리공간이 비어있는지 알 수 없다.
부족하면? : 크기가 더 큰 배열을 만들어 옮긴다.
배열의 초기화
int[] score = {10, 20, 30, 40, 50};
int[] score;
score = new int[]{10, 20, 30, 40, 50};
배열의 출력
int[] iArr = {10, 20, 30, 40, 50};
for(int i = 0; i < iArr.length; i++){
System.out.println(iArr[i]);
}
System.out.println(Arrays.toString(iArr); // [10, 20, 30, 40, 50]
String클래스 : char[] + 메소드
String클래스는 내용을 변경할 수 없다.
초기화된 String 변수에 값을 대입하면 새로운 메모리공간을 만들고 가리킨다.
String str = "abc";
str.charAt(2); // c
str.substring(0,2); // ab
str.equals(iArr); // False
Arrays 클래스
int[] arr = {1,2,3,4,5};
int[][] arr2 = {{11,12}, {21,22}};
Arrays.toString(arr); // 1차원
Arrays.deepToString(arr2); // 다차원 [[11,12], [21,22]]
Arrays.equals(arr1, arr2); // 1차원 비교
Arrays.deepEquals(arr1, arr2); // 다차원 비교
int[] arr3 = Arrays.copyOf(arr, arr.length);
Arrays.sort(arr3);
객체 배열
객체 배열 == 참조변수 배열
Tv[] tvArr = new Tv[3]; // 참조 변수 3개 만든 것(포인터 3개)
tvArr[0] = new Tv(); // 각각의 참조변수가 객체를 가리키도록 객체를 생성 해줘야함.
tvArr[1] = new Tv();
tvArr[2] = new Tv();