배열
배열 : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
배열의 선언
- 배열을 다루기 위한 참조변수의 선언
타입[] 변수이름;
: 배열을 선언 == 참조변수 선언변수이름 = new 타입[길이];
: 배열을 생성 == 실제 저장공간을 생성
배열의 인덱스
- 각 요소에 자동으로 붙는 번호
- 범위는 0부터 ‘배열길이-1’까지
배열의 초기화
int[] score = new int[]{50, 60, 70, 90}
int[] score = {50, 60, 70, 90}
배열의 출력
- `System.out.println(Arrays.toString(배열이름));
- 배열이 [50, 60, 70, 90] 같은 형태로 출력됨
- charArr인 경우에만
System.out.println(chArr)
했을 때 배열의 값이 abcd와 같은 형태로 나옴 - 다른 타입의 배열은
System.out.println(intArr)
했을 때 배열의[I@4e25154f와 같은 형태로 메모리의 주소값이 나옴
배열의 복사
Arrays.copyOf()
: 인자로 복사할 배열, 복사할 요소의 갯수를 받는다.Array.copyOfRange()
: (복사할 배열, to, from)
1
2
3
4
5
int arr = {0, 1, 2, 3, 4};
int[] arr2 = Arrays.copyOf(arr, arr.length); //arr2= [0,1,2,3,4]
int[] arr3 = Arrays.copyOf(arr, 3); //arr3= [0,1,2]
int[] arr4 = Arrays.copyOf(arr, 7); //arr4= [0,1,2,3,4,0,0]
int[] arr5 = Arrays.copyOfRange(arr, 2, 4); //arr5= [2,3]
배열의 정렬
sort()
배열을 오름차순으로 정렬해줌
2차원 배열
- 테이블 형태의 데이터를 저장하기 위한 배열 (표와 같은 형태)
- 2차월 배열이 여러개면 3차원 배열이 된다.
int[][] score = new int[4][3]
과 같은 형태로 선언. 4행 3열의 12개 값을 넣을 수 있는 배열이라는 뜻.- 각각의 인덱스는
score[2][0]
과 같은 형태로 쓴다. 2행 0열이라는 뜻이다. - 2차원 배열 = 1차원 배열의 배열
2차원 배열의 초기화
- 주로 아래와 같이 표기
1
2
3
4
int [][] arr = {
{1, 2, 3},
{4, 5, 6}
}
2차원 배열의 출력
System.out.println(Arrays.deepToString(arr))
라고 쓰면 [[11, 12], [21, 22]] 같은 형태로 나타남
2차원 배열의 비교
System.out.println(Arrays.deepEquals(arr1, arr2))
각각의 배열 인덱스가 일치하는지 비교해준다.
커맨드 라인을 통해 입력받기
- 커맨드 라인에 입력한 값이 문자열 배열에 담겨서 전달된다.
- 예) 매개변수를 3개 받는 클래스의 경우,
java 클래스이름 매개변수1 매개변수2 매개변수3
이런 식으로 전달된다.
- 예) 매개변수를 3개 받는 클래스의 경우,
- 자바 폴더의
workspace\ch05\bin
에 들어가서 주소를 복사한 뒤 cmd창에 넣는다. - 예시와 같이 매개변수를 넣어서 cmd에서 사용할 수 있다.
String 클래스
- char[]와 메소드를 결합한 것
- 내용을 변경할 수 없다 (readonly) : 문자가 결합하면 해당 문자가 바뀌는 것이 아니라 새롭게 저장되는 것이다.
- 주요 메소드
char charAt(int index)
: 문자열에서 해당 위치에 있는 문자를 반환한다.int length()
: 문자열의 길이를 반환한다String substring (int from , int to)
: 문자열에서 해당 범위의 문자열을 반환한다. (to는 포함 안됨)boolean equals(Object obj)
: 문자열의 내용이 같은지 확인한다.char[] toCharArray()
: 문자열을 문자배열로 변환해서 반환한다.