Java

[Java] 제네릭(Generic)

Rosie_dev 2021. 1. 30. 00:35

 

1) 컬렉션(Collection)과 제네릭(Generic)

 

JDK1.5 도입과 시작된 것이 바로 제네릭(Generic)이다.

쉽게 말해 컬렉션(Collection)으로 자료를 저장하는데 필요한 데이터 타입을 지정해주므로 데이터 타입의 혼용과 오류를 방지하기 위한 일종의 장치이다.

배열에는 이미 배열 객체 생성시 그 타입과 크기를 지정해야 한다. 반면, 컬렉션(Collection)은 동적, 가변적 자료구조를 저장할 수 있지만 별도의 제네릭 <element> 으로 설정이 필요하다. 

 

 

2) 왜 필요할까?

 

제네릭(Gerneric)을 이용하면, 컴파일시 발생하는 타입에러 발생 위험을 줄일 수 있다. 그리고 타입이 제한을 두고 있어 실제 데이터 값을 입력시에도 타입을 제한할 수 있다. 즉, 사전예방 효과가 있다.

뿐만 아니라, 특정 타입의 자료만을 반환하고자 할 때 실행하는 처리 속도를 줄일 수 있다. 이미 제네릭에 의해 타입이 구분되어 있기 때문이다.  불필요한 타입변환을 방지할 수 있다.

 

 

3) 제네릭(Gerneric)의 종류

 

<T>         Type

<E>         Element

<K>        Key

<N>        Number

<V>        Value

<R>        Result

 

<?>         와일드카드 타입으로 특정 타입이 지정되지 않아 모든 타입이 입력가능하다. 이 경우 제네릭(Generic)의 장점을 활용하기 어렵기 때문에 추천하지 않는 방법이다.

 

 

4) 제네릭(Gerneric)의 생략시기

 

컴파일시 클래스 파일에서 다른 코드와의 상호호환을 위해 생략된다.

'Java' 카테고리의 다른 글

[Java] Enum  (0) 2021.02.02
[Java] List 콜렉션(Collection)  (0) 2021.01.30
[Java] 컬렉션(Collection)  (0) 2021.01.30
[Java] 람다식(Lambda)  (0) 2021.01.28
[Java] 배열, 버블정렬  (0) 2021.01.19
댓글