[신세계I&C KDT][Java 프로그래밍] #4 배열 array (0313)

박현아·2024년 3월 13일
0

신세계아이앤씨 KDT

목록 보기
4/42

cf) 자바에서 데이터 저장 방법 3가지 ★

1) 변수 (variable)

  • 값(데이터) 하나만 저장이 가능
  • 데이터 개수만큼 변수가 필요
  • 관리가 어려움
  • 기본형 변수, 참조형 변수 (클래스, 인터페이스, 배열)

2) 배열 (array)

  • 여러 개의 값을 저장 가능
  • 배열에 저장하는 데이터형이 동일해야 됨
  • 크기 변경 불가능
  • 배열 자체는 참조형이고 저장되는 데이터는 기본형, 참조형
  • 기본형 배열 int[] num = {10, 20, 30};
  • 참조형 배열 String[] name = {"홍길동", "이순신"};

3) 컬렉션 (Collection API)

  • 여러 개의 값 저장 가능
  • 컬렉션에 저장하는 데이터형은 달라도 무관함
  • 크기 변경이 자유롭다
  • 컬렉션 자체는 참조형이고 저장되는 데이터는 참조형, 기본형 (wrapper 클래스를 이용)
  • cf) wrapper 클래스
기본형wrapper 클래스
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
  • 종류 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]);
}
  • 배열의 길이 : 배열이름.length;

(3) 향상된 for문 (foreach 문)

  • num 배열의 값을 정수 n에 하나씩 담아준 후 가져오는 방법
for (int n : num) {
		System.out.println(n);
}

0개의 댓글