5.1.1 배열
- 같은 타임의 여러 변수를 하나의 묶음으로 다루는 것
int[] score = new int[5];
5.1.2 배열 선언 및 생성
- 배열 선언 방법
// 방법 1) 타입 뒤에 배열 선언 int[] score; // 방법2) 변수명 뒤에 배열 선언 int score[];
- 배열의 생성
= new int[length];
5.1.3 배열의 인덱스
- 생성된 각 저장공간을 '배열요소(element)'라 하며, '배열이름[인덱스]'의 형식으로 접근
- 인덱스는 상수 대신 변수나 수식도 사용 가능
score[i]; score[i+1]; score[i--];
5.1.4 배열의 길이
- 값을 저장할 수 있는 공간의 개수
- 배열의 길이는 0부터 '배열의 길이-1' 까지
-배열의 길이는 int범위의 양의 정수(0도 포함)이어야 한다.
- 배열의 길이 변경 방법 순서
- 더 큰 배열을 새로 생성
- 기존의 배열을 새로운 배열에 복사
5.1.5 배열의 초기화
- 생성과 동시에 자동으로 자신의 타입에 해당하는 기본값으로 초기화
- 초기화 방법
int[] score = new int[] {50, 60, 70, 80, 90}; int[] score = {50, 60, 70, 80, 90}; //new Int[] 생략 가능 //길이가 0인 배열 생성 방법 int[] score = new int[0]; int[] score = new int[] {}; int[] score = {}; //불가능한 방법 int[] score; score = {50, 60, 70, 80, 90};
5.1.6 배열의 출력
- 배열 참조변수를 print를 통해 출력을 하면 '타입@주소 출력'
int[] iArr = {50, 60, 70, 80, 90}; System.out.println(iArr) //[I@14318bb]가 출력 char[] chAtrr = {'a', 'b', 'c', 'd'}; System.out.println(iArr); //abcd출력
5.1.7 배열의 복사
- 1.5~2배 많게 복사를 함
int arr = new int[5]; int[] tmp = new int[arr.length*2]; //새로운 배열 선언 및 생성 for(int i=0; i<arr.length; i++) //배열 복사 tmp[i] = arr[i] arr = tmp //arr이 tmp와 같은 배열을 가리키게 참조변수 주소를 복사
-System.arraycopy()를 통한 복사(더 효율적)
int[] num = new int[10];
int[] newNum = new int[20];
System.arraycopy(num, 0, newNum, 0, num.length)
/*
num[0]에서 newNum[0]로 num.length개의 데이터 복사
*/
5.1.8 String 배열
- String 배열 역시 기존의 배열 선언 및 생성 방법과 동일
- String 역시 객체이기 때문에 생성시 null로 초기화
String[] name = new String[3];
5.1.9 String 배열의 초기화
- 초기화 역시 기존의 배열 초기화 방법과 동일
String[] name1 = new String[]{"kang","seong","beom"}; Strring[] name2 = {"kang","seong","beom"};
5.1.10 char배열과 String 클래스
- char 배열과 String클래스는 동일하다.
- String 클래스는 char배열에 기능(메서드)를 추가한 것.
- char배열과 String의 변환
char[] chArr = {'a','b','c'}; String str = new String(chArr); // char배열 -> string char[] tmp = str.toCharArray(); //string -> char배열
5.1.11 String 클래스의 주요 메서드
- char charAt(int index)
- 문자열에서 해당 위치에 있는 문자 반환
- int length()
- 문자열의 길이 반환
- String substring(int from, int to)
- 해당 범위(from ~ to-1)까지 문자열 반환
- boolean equals(Object obj)
- 내용을 비교하여 obj와 같은지 확인
- char[] toCharArray()
- 문자열을 문자배열(char[])로 반환
5.1.12 커맨드 라인을 통해 입력받기
- 사용자의 입력을 받기위한 방법
- 프로그램 실행 시 클래스 이름 뒤 공백문자로 구분하여 여러 프로그램에 전달
java ArrayEx16 abc 123
class ArrayEx16{
public static void main(String[] args){
}
}
/*
main의 파라미터인 args에 'abc', '123'이 포함 됨.
즉, args[0] = "abc" | args[1] = "123"
*/
'자바의 정석 정리' 카테고리의 다른 글
자바의 정석 - 5.3 가변 배열 (0) | 2022.06.07 |
---|---|
자바의 정석 - 5.2 다차원 배열 (0) | 2022.06.07 |
자바의 정석 - 4.7 이름을 붙인 반복문 (0) | 2022.06.05 |
자바의 정석 - 4.6 반복문 종료 및 지속 (0) | 2022.06.05 |
자바의 정석 - 4.5 반복문 do-while (0) | 2022.06.05 |