상세 컨텐츠

본문 제목

자바강의 - [6주차] 자바와 자료구조 (2)

Programming/Java

by leediz 2022. 3. 1. 21:50

본문

자바강의 - [6주차] 자바와 자료구조 (2)


제네릭(Generic) 프로그래밍

  • 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크(compile-time type check)를 해주는 기능
  • 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어듬
  • 따라서 제네릭을 사용하면 타입 안정성을 제공하므로 타입체크와 형변환을 생략할 수 있어 코드가 간결해짐
  • 제네릭을 적용하지 않은 코드 예제
ArrayList tvList = new ArrayList();
tvList.add(new Tv());
Tv t = (Tv)tvList.get(0);
  • 제네릭을 적용한 코드
ArrayList<Tv> tvList = new ArrayList<Tv>();
tvList.add(new Tv());
Tv t = tvList.get(0);

타입 변수 <>

  • 클래스 이름 옆의 ‘<>’안에 있는 알파벳을 ‘타입 변수(type variable)’라고 하며 일반적으로 ‘Type’의 첫 글자를 따서 T를 사용하지만 반드시 T를 사용해야 하는 것은 아니며 ArrayList의 경우 ‘Element(요소)’의 첫 글자를 따서 ‘E’를 사용함
  • 타입 변수가 여러 개인 경우에는 Map<K, V>와 같이 콤마',’를 구분자로 나열하면 됨

<T extends 클래스>

  • 제네릭 타입에 extends 를 사용하면, 특정 타입의 자손들만 대입할 수 있게 제한할 수 있음
  • 인터페이스를 구현해야 하는 제약이 있어도 implements 가 아닌 extends 를 사용함

제네릭 메서드

  • 메서드의 선언부에 제네릭 타입이 선언된 메서드
  • 제네릭 클래스의 정의된 타입 매개변수가 ‘T’이고 제네릭 메서드에 정의된 타입 매개변수가 ‘T’이어도 이 둘은 전혀 별개의 것임
  • 제네릭 메서드는 제네릭 클래스가 아닌 클래스에도 정의될 수 있음

컬렉션 프레임워크

  • 프로그램 구현에 필요한 자료구조(Data Structure)를 구현해 놓은 JDK 라이브러리
  • java.util 패키지에 구현되어 있음
  • JDK1.2부터 컬렉션 프레임웍을 통해 다양한 종류의 컬렉션 클래스가 추가되고 모든 컬렉션 클래스를 표준화된 방식으로 다룰 수 있도록 체계화 됨
  • 개발에 소요되는 시간을 절약하면서 최적화 된 알고리즘을 사용할 수 있음
  • 여러 구현 클래스와 인터페이스의 활용에 대한 이해가 필요함
  • 크게 List, Set, Map 3가지 타입으로 나눌 수 있음

List 인터페이스

  • 순서가 있는 데이터의 집합
  • 데이터의 중복을 허용함
  • ArrayList, LinkedList, Stack, Vector 등

Set 인터페이스

  • 순서를 유지하지 않는 데이터의 집합
  • 데이터의 중복을 허용하지 않음
  • HashSet, TreeSet 등

Map 인터페이스

  • 키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합
  • 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용함
  • HashMap, TreeMap, Hashtable, Properties 등

참고자료


Java & SpringBoot로 시작하는 웹 프로그래밍 강의 : #패스트캠퍼스 #내일배움카드 #K디지털크레딧 #바이트디그리 #자바인강

관련글 더보기

댓글 영역