cf) 자바에서 데이터 저장 방법 3가지 ★
1) 변수 (variable)
- 값(데이터) 하나만 저장이 가능
- 데이터 개수만큼 변수가 필요
- 관리가 어려움
- 기본형 변수, 참조형 변수 (클래스, 인터페이스, 배열)
2) 배열 (array)
- 여러 개의 값을 저장 가능
- 배열에 저장하는 데이터형이 동일해야 됨
- 크기 변경 불가능
- 배열 자체는 참조형이고 저장되는 데이터는 기본형, 참조형
- 기본형 배열 int[] num = {10, 20, 30};
- 참조형 배열 String[] name = {"홍길동", "이순신"};
3) 컬렉션 (Collection API)
- 여러 개의 값 저장 가능
- 컬렉션에 저장하는 데이터형은 달라도 무관함
- 크기 변경이 자유롭다
- 컬렉션 자체는 참조형이고 저장되는 데이터는 참조형, 기본형 (wrapper 클래스를 이용)
- cf) wrapper 클래스
기본형 | wrapper 클래스 |
---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
- 종류 3가지 (클래스로 제공)
(1) List 계열(2) Set 계열
- 저장 순서가 없음. 중복이 불가 (한 번만 저장됨)
(3) Map 계열
- key(name)와 value(값)을 쌍으로 저장한다
- 순서가 없음
- 동일한 key를 저장하면 값을 덮어쓴다
1. 배열 (array)
- 용도 : 데이터 저장
- 참조형 데이터이다.
- 참조형은 반드시 저장 영역을 만들 때 new를 이용한다!! ★
- 메모리는 heap에 저장된다
- 한 번 생성된 배열은 크기 변경이 불가능하다 (크기를 늘리고 싶으면 다시 new 해야됨)
- 기본형, 참조형 모두 저장 가능
- 1차원 및 다차원 배열 생성 가능
1) 배열 선언
- int[] num; or int num[];
- 구별할 것
- int num;
- num의 데이터 타입? int, 기본형
- num에 저장되는 값? int인 정수
- int[] num2;
- num2의 데이터 타입? int[], 참조형
- num2에 저장되는 값? 주소값
2) 배열 생성 및 초기화 방법

(1) new 이용
- 크기 3을 가진 배열이 heap 메모리에 저장됨
- heap에 생성되기 때문에 자동 초기화가 된다
int [] num;
num = new int[3];
num[0]=10;
num[1]=20;
num[2]=30;
(2) 리터럴(값) 이용 ★
int[] num = {10, 20, 30};
(3) new + 리터럴 혼합 ★
int [] num;
num = new int[] {10, 20, 30};
3) 배열 요소 접근
- 생성된 배열의 인덱스 사용 (0부터 시작)
- 초기화 : 배열명[인덱스] = 값; (ex) num[0] = 10;
- 배열 길이 : 배열명.length;
- java.lang.ArrayIndexOutOfBoundsException 없는 배열 접근 시 예외 발생
4) 배열 값 가져오는 법
(1) 직접 인덱스 지정
num[0]
(2) (일반) for문 이용
for (int i=0; i<num.length; i++) {
System.out.println(num[i]);
}
(3) 향상된 for문 (foreach 문)
- num 배열의 값을 정수 n에 하나씩 담아준 후 가져오는 방법
for (int n : num) {
System.out.println(n);
}