제네릭은 모든 종류의 타입을 다룰 수 있도록, 클래스나 메서드를 타입 매개변수를 이용하여 선언하는 기법이다. 이는 C++의 템플릿과 동일하다.
컬렉션 클래스에서 타입 매개변수로 사용하는 문자는 다른 변수와 혼동을 피하기 위해 일반적으로 하나의 대문자를 사용한다. 다음은 관례적으로 사용하는 문자이다.
일반화된 타입을 갖는 클래스를 정의하여 객체 생성시 지정된 타입의 객체만 담을 수 있도록 한다. 이 과정을 통해 컴파일 단계에서 확인 가능해진다.
컬렉션은 데이터를 효율적으로 저장하고 관리하기 위한 클래스와 인터페이스의 집합이다.컬렉션은 안드로이드를 비롯한 자바 프로그램을 작성하는데 빼놓을 수 없는 중요한 도구이다. 자바의 JDK는 많은 자료구조를 컬렉션으로 만들어 제공하며, 이를 통해 데이터를 쉽게 처리할 수 있다.
java.util 패키지에 포함되어 있으며, 다음과 같은 주요 인터페이스와 클래스들로 구성된다.
가변 크기의 배열 객체로, 제네릭을 이요하여 사용할 특정 자료형으로 구체화한다.
내부적으로 Object 타입의 배열로 구현되어 있다.
배열의 할당 크기 제한 극복(할당 크기 넘어가면 자동으로 크기 조절)
요소 객체들의 삽입/삭제/검색 제공
작동 방식
벡터에 값을 넣거나 삭제할 때 자동 박싱/언박싱 된다.
단, 타인 매개변수를 기본 자료형으로 구체화 할 수는 없다.
주요 메서드
컬렉션에서 요소의 순차 검색을 위한 인터페이스이다.
컬렉션 클래스의 종류에 상관없이 동일한 형태의 데이터 참조 방식을 유지하기 때문에 데이터 전부를 참조할 때 유용하다.
특히 set과 같이 순서가 없는 컬렉션은 요소에 접근하기 어려운데 이 때 유용하다.
한 방향으로만 접근하기 때문에 처음으로 돌아갈 필요가 있다면 재선언 해주면 된다.
출처
명품 JAVA programming - 황기태, 김효수
https://www.youtube.com/사람만이