☕JAVA/🐣 강의 [JAVA]

[JAVA][기초] Java Collection Framework 와 Generic 제네릭의 이해

디카페인라떼 2022. 11. 10. 17:00

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다.

Java for Beginner - YouTube

 

Java for Beginner

[교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프...

www.youtube.com


 💡Java Collection Framework의 이해

Core Collection Interface

  • Java Collection Framework
    • 객체들을 관리하기 위해 사용하는 컨테이너 클래스들의 집합
  •  컨테이너 클래스들의 종류 (계열로 구분)
  •  Collection Interface : 순서없는 객체들의 집합
    •  List Interface : 순차적 나열로 순서 지정이 가능한 객체들의 집합 (배열)
    •  Set Interface : 중복을 허용하지 않는 객체들의 집합
    •  Queue Interface : FIFO ( First In First Out ) 처음 저장하는 객체가 가장 먼저 나오는 구조의 집합
    • Map : 키와 그 키에 대응하는 객체들로 이루어진 집합
  • 각 계열에 따라 객체들을 저장하고 관리하는 방식에 차이가 있음.
    • 잘 활용하기 위해서는 각 클래스들의 특징과 저장 방식에 대한 이해 필요
  • 컬렉션 관련 인터페이스들과 클래스들은 java.util.* 패키지에 포함
  • 저장하고자 하는 객체들의 특성에 따라 사용할 클래스를 선택
  • 컬렉션 클래스를 선택할 때 필요한 대표적인 고려사항
    • 저장 객체의 추가, 삭제와 같은 데이터의 변경이 자주 발생하는지 여부
    • 저장 객체의 빠른 탐색이 최우선으로 필요한지
    • 저장 메모리를 최대한 효율적으로 사용하고자 하는지

 


💡 제네릭 Generic의 이해

  • 제네릭 Generic은 Java5에서 추가된 기능으로 특히 객체를 수집, 관리하는 컬렉션을 이용할 때 반드시 사용
  • 제네릭을 사용하면 데이터를 저장하는 시점에 어떤 데이터를 저장할 것인지 명시할 수 있음.
    • 이를 통해 사용하고자 하는 데이터의 타입을 명확히 선언할 수 있고, 정확한 데이터의 사용 여부를 컴파일 시점에 확인 가능

💡제네릭과 컬렉션

  • Object 클래스는 최상위 클래스로서 Java의 모든 클래스를 참조할 수 있음.
    •  모든 클래스를 참조할 수 있다는 것은 분면 편리할 수 있지만 오류를 발생시킬 수 있는 여지 또한 매우 큼.
    •  예를 들어, Object 배열에 다양한 객체의 참조를 넣었을 때
    •  객체의 구분없이 배열에 담을 수 있다는 것은 담을 때의 편리성은 있지만 다시 꺼낼 때는 문제 발생

🚩 그러므로 컬렉션 프레임워크를 구현한 클래스들을 사용 시에 제네릭이 필요함!