컬렉션 프레임워크 자료 구조

Java의 데이터 타입과 예외

Jim White

Java Instructor

프레임워크란?

  • 프레임워크: 재사용 가능한 타입으로 일반 기능을 제공하는 집합
    • 예: 클래스, 인터페이스
    • 애플리케이션 품질 향상
    • 처음부터 모두 만들 필요 없음
  • Java에서는 하나 이상의 패키지로 제공
  • 사용 지침과 규칙을 포함

프레임워크는 일반 기능을 제공하는 미리 작성된 코드 집합입니다

1 Photo by Ashkan Forouzani on Unsplash
Java의 데이터 타입과 예외

Java 타입

Java의 타입은 두 범주입니다:

  • 원시 타입
    • byte, short, int, long, float, double, char, boolean
  • 참조 타입
    • 클래스
    • 인터페이스
    • 열거형
    • 배열
    • ...
Java의 데이터 타입과 예외

컬렉션 프레임워크

  • 컬렉션 프레임워크: Java 내장 제네릭 자료 구조 모음
    • 객체 묶음을 저장·조작하는 타입 패키지
  • java.util 패키지에 정의
    • 사용하려면 import가 필요
Java의 데이터 타입과 예외

배열은 어떨까요?

  • Java 배열은 객체나 원시 타입의 묶음을 보관 가능
    • 컬렉션 프레임워크는 대안 자료 구조 제공
  • 둘 모두 장단점이 있습니다
배열 컬렉션
크기 고정 동적 크기(확장/축소)
원시 또는 객체 저장 객체만 저장
동질적 - 요소 동일해야 함 이질적 - 서로 다른 객체 가능
[]로 접근 메서드로 접근
{} 초기화 문법 new 사용(특별 초기화 문법 없음)
Java의 데이터 타입과 예외

컬렉션 프레임워크 유형

  • 컬렉션 프레임워크는 기본적으로 CollectionMap 두 가지 유형으로 나뉩니다
    • 두 인터페이스로 표현: java.util.Collection & java.util.Map
    • 둘 다 여러 구현 클래스가 있습니다
  • 어떤 컬렉션 프레임워크 타입이든 사용하려면 import java.util.*;

컬렉션 프레임워크에는 Collection과 Map의 두 가지 기본 유형이 있습니다

Java의 데이터 타입과 예외

Collection

  • Collection은 다양한 객체 묶음을 정의합니다
    • 추가 인터페이스로 세분화됩니다
  • 순서 있는 객체 묶음: List
  • 순서 없는 객체 묶음: Set
  • 선입선출 객체 묶음: Queue
    • 은행/매표소 줄처럼 동작
  • 모든 Collection은 .add(Object), .remove(Object)로 수정

Collection에는 List, Set, Map이 포함됩니다

Java의 데이터 타입과 예외

Map

  • Map 자료 구조는 전화번호부나 사전처럼 동작합니다
    • "key" 객체 -> "value" 객체
    • 전화번호부: 이름 -> 전화번호
    • 사전: 단어 -> 정의
  • 키 객체로 Map을 수정합니다
    • .put(Object key, Object value) 추가
    • .remove(Object key) 삭제
  • HashMap 등 다양한 Map 유형 존재

Map 자료 구조는 전화번호부나 사전처럼 동작합니다

Java의 데이터 타입과 예외

제네릭

  • 컬렉션과 Map은 "매개변수화"되어 있습니다
    • Java 제네릭으로 Collection/Map의 객체 타입을 지정
    • 제네릭 문법: <Class> 형태의 매개변수화된 타입
      • < >는 다이아몬드 연산자
ArrayList<String> list = new ArrayList<String>();  // 제네릭으로 생성
Java의 데이터 타입과 예외

제네릭과 타입 안전성

  • 제네릭은 더 나은 타입 안전성을 제공합니다
    • CollectionMap의 허용 객체를 제한
ArrayList<String> list = new ArrayList<String>();
list.add("hello");  // String 추가는 허용
list.add(new Integer(5));  // Integer 추가 시 컴파일 오류
Java의 데이터 타입과 예외

제네릭 미사용

ArrayList list2 = new ArrayList();  // 합법이나 타입 미지정

list2.add("hello");                 // 이제 어떤 타입이든 추가 가능
list2.add(new Integer(5));
Java의 데이터 타입과 예외

변수 선언과 할당

  • 변수 선언과 할당은 분리할 수 있습니다
ArrayList<String> list = new ArrayList<String>(); // 한 줄 선언과 할당

ArrayList<String> list2;    // 변수 선언...
list2 = new ArrayList<String>();  // ...그리고 할당은 두 문장으로 가능
Java의 데이터 타입과 예외

Ayo berlatih!

Java의 데이터 타입과 예외

Preparing Video For Download...