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 |