배열
- 같은 타입의 데이터를 같은 이름으로 연속된 공간에 저장하는 자료 구조를 말한다.
- 같은 이름이기 때문에 각 구성데이터를 구분하는 구분자는 index로 0부터 시작하여 처리한다.
배열의 처리
- 배열의 선언
타입[] 변수명; or 타입 변수명[];
- 배열의 초기화
변수 = null; // 주소는 할당되지 않음
- 배열의 할당
1) 값이 할당되지 않았지만 주소는 생성된 경우
변수명 = new 타입[크기];
2) 선언 후 할당
타입[] 변수명 = null;
변수명 = new 타입[]{데이터1, 데이터2, 데이터3};
타입[] 변수명 = {데이터1, 데이터2, 데이터3}; // 선언과 할당 동시에
배열의 응용
- 배열의 index를 랜덤으로 호출하여 출력
String[] games1 = {"홀","짝"};
for(int i=1;i<=5;i++) {
int rIdx = (int)(Math.random()*games1.length);
System.out.print(i+"번째 >"+games1[rIdx]+" ");
}
System.out.println();
- 초기의 크기를 설정한 후, 데이터 할당 처리
Scanner sc = new Scanner(System.in);
System.out.println("등록할 회원의 인원을 입력 : ");
int cnt = Integer.parseInt(sc.nextLine());
String []names = new String[cnt];
for(int i=0; i<names.length;i++) {
System.out.print((i+1)+"번째 회원명 : ");
names[i] = sc.nextLine();
}
System.out.println("#등록된 회원명단#");
for(int i=0; i<names.length;i++) {
System.out.println((i+1)+"번째 회원명 -"+names[i]);
}
다차원 배열
- 2차원배열 이상의 배열을 말한다.
- 자바는 1차원 배열을 이용해 2차원 배열을 구현한다.
ex) int[][] scores = new int[2][3];
score[0][0] = 1;
score[0][1] = 2;
score[0][2] = 3;
score[1][0] = 4;
score[1][2] = 5;
score[1][2] = 6;
- 2차원 배열의 선언 / 할당
int[][] prices = {{1,2,3},{4,5,6}};
String[][] trains = new String[6][70]; // 6호차 각 70개의 좌석이 있는 기차 클래스
trains[0][0] = "★"; // 1호차의 1번 좌석 ★ 출력
trains[1][2] = "★"; // 2호차의 3번 좌석 ★ 출력
for(int i = 0; i < trains.length; i++){
System.out.println((i+1)+"호차 좌석번호");
for(int j = 0; j < trains[i].length; j++){
System.out.print((j+1)+"번 "+trains[idx][jdx]+" ");
}
System.out.println();
}