원글 페이지 : 바로가기
컬렉션(collection)과 제네릭(generics) 자바에서는 자료구조 과목에서 배우는 많은 자료구조들을 컬렉션으로 만들어 제공한다. 중요한 것은 배열과 달리 가변 크기의 컨테이너로 만들어지며 이를 제네릭이라는 기법으로 구현한다. 이렇게 제공되는 도구를 잘 활용하는 것도 중요하니 잘 살펴보려고 한다! Collection 자바에서 컬렉션(Collection)이란 데이터의 집합, 그룹을 의미하며 JCF(Java Collections Framework)는 이러한 데이터, 자료구조인 컬렉션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공한다. 핵심적인 컬렉션 프레임워크의 상속 구조 Collection 인터페이스는 List, Set, Queue로 크게 3가지 상위 인터페이스로 분류할 수 있다. 추가로 Collection 인터페이스를 상속받진 않지만 Map 역시 Collection으로 분류된다. 컬렉션 종류 인터페이스 구현 클래스 특징 Set HashSet TreeSet 순서를 유지하지 않는 데이터의집합으로 데이터의 중복을 허용하지 않음 List LinkedList Vector ArrayList 순서가 있는 데이터의 집합으로 데이터의 중복 허용 Queue LinkedList PriorityQueue List와 유사 Map Hashtable HashMap TreeMap 키(Key), 값(Value)의 쌍으로 이루어진 데이터 집합. 순서는 유지되지 않으며 키의 중복을 허용하지 않으나 값의 중복은 허용 제네릭(generics) 제네릭(generics)은 여러 종류의 타입을 다룰 수 있도록 클래스나 메서드를 ‘요소
…
void push(E element) { … }
E pop() { … }
…
} 따라서 int, char, double 등 기본 타입이 아닌 Wrapper 클래스로 지정해야한다. 대신 자동 박싱(auto boxing)에 의해, 예를 들면 int 타입을 Integer 객체로 변환해준다. (반대는 자동 언박싱) 다이아몬드 연산자<> Java 7 부터는 제네릭 객체 생성부의 <> 내에 매개변수를 생략하면 컴파일러가 추론하여 타입 매개변수를 찾아준다! ex) ArrayList
Iterator
while (it.hasNext()) { // list의 끝까지 반복
int n = it.next(); // it가 가리키는 요소 리턴
…
} boolean hashNext() 방문할 요소가 남아 있으면 true 리턴 E next() 다음 요소 리턴 void remove() 마지막으로 리턴된 요소 제거 비교적 간단하게 요약되었는데, 제네릭을 직접 만드는 것은 따로 작성할 예정이다. 참고 명품 자바 프로그래밍(황기태, 김효수. 생능출판) https://gangnam-americano.tistory.com/41 https://velog.io/@dongzooo/%EC%9E%90%EB%B0%94-%EC%BB%AC%EB%A0%89%EC%85%98Collection-%ED%95%9C-%EB%88%88%EC%97%90-%EC%A0%95%EB%A6%AC%ED%95%98%EA%B8%B0 오타, 지적 감사합니다 🙂