-
지네릭스(Generics)와 Iterator & HashMap백엔드/자바 2021. 5. 22. 18:10
지네릭스와 Iterator
위와 같은 Student라는 일반 클래스가 있다고 가정해보자.
그리고 Student 클래스의 객체를 리스트에 저장한 다음 Iterator()메서드를 이용해서
Iterator 객체를 호출해서 리스트에 저장된 Student 객체의 이름을 출력하는 코드가 있다고 가정하자.
이때 Iterator객체의 next() 메서드는 Object 자료 타입으로 객체를 반환한다.
그렇기 때문에 Student의 변수인 s에 객체를 저장할 때 별도로 Student로 캐스팅을 한 것이다.
그런데 Iterator 객체를 호출할 때 지네릭스를 쓴다면 코드를 간결하게 쓸 수 있다.
위와 같이 미리 Iterator 객체를 호출할 때 지네릭스를 써서 이용할 객체를 미리 써두면 캐스팅이 필요없다.
그래서 훨씬 간결한 코드 작성이 가능하다.
지네릭스와 HashMap
HashMap을 쓸 때도 지네릭스를 사용할 수 있다.
예를 들어 위와 같은 코드가 있다고 가정해보자.
HashMap 안에 정수형 숫자와 Student 객체를 저장하고 다시 불러와서 이름을 출력하는 코드다.
지네릭스를 쓸 경우를 코드로 적으면 위와 같다.
Map의 경우 키(key), 값(value) 두 가지 데이터가 필요하다.
그래서 지네릭 안에도 두 가지 타입의 데이터를 지정해줘야 한다.
실제 HashMap의 자바 코드에서도 저런 식으로 쓰이는 것을 볼 수 있다.
여튼 저렇게 지정할 경우 캐스팅이 필요없어서 코드가 깔끔해진 것을 볼 수 있다.
'백엔드 > 자바' 카테고리의 다른 글
어노테이션, 애너테이션(Annotation) - 표준 애너테이션 (0) 2021.05.26 열거형(Enum Types) (0) 2021.05.22 지네릭스(Generics) - 지네릭 메서드 (0) 2021.05.22 지네릭스(Generics) - 와일드카드 (0) 2021.05.21 지네릭스(Generics) - 지네릭 extends, 지네릭의 한계 (0) 2021.05.21