본문 바로가기

JAVA/Collection

generics

1. generics

 다양한 타입의 객체들을 다루는 메소드나 컬렉션등에 들어가는 타입형을 지정해 주는것이다.

해당하는 타입만 들어 갈 수 있기 때문에  형변환에 의한 불필요한 코딩, 잘못된 형변환에 의한 런타임 오류등에서 벗어 날 수 있다. 


2.선언방법
ㄱ)ArrayList경우
ArrayList<자료형> arr = new ArrayList<>();  (자료형과 같은 타입의 값(객체포함)만 들어감. 

 

만약 다른 자료형 add 하려고 하면 오류가 난다.

generics가 없는 리스트와 비교해보자

String으로된 값이 들어간다.

 

b에서 String으로된 값을 제외하고 넣은 후 forEach문으로 객체로 변환 후 출력해보자.

만약 a와 같은 방식으로 b를 출력하려고 하면 오류가 난다.

a의 경우 Student객체배열에 넣을 수도 있다.

a를 Iterator후 출력해보자

즉 generics를 지정하면 형변환할 필요가 없어진다.

 

(Set의 경우 ArrayList와 같다)

 

ㄴ)Map의 경우

Map<키자료형, 값자료형 > ma = new Map<>(); -> 각각의 자료형의 맞는 키,값/객체 만 들어가게 된다.

 

안들어가는 값을 주석처리후 출력 해보자

 

Set 객체에서 제네릭스를 빼도 가능하다.

 

Iterator나 Map.entry 객체를 객체에서 generics를 안걸면 오류가 발생한다.

 

'JAVA > Collection' 카테고리의 다른 글

JAVAProperties  (0) 2019.12.21
Map  (0) 2019.12.21
Set  (0) 2019.12.21
ArrayList  (0) 2019.12.21