강의 수강 중 작성한 노트에서 내용을 발췌, 이응수 강사님 강의 의 노트와 이미지를 참조하고 있습니다.
스스로 이해를 위해 직접 쓴 문장들의 경우 정확성이 떨어질 수 있다는 점 참고 부탁드립니다.
자료구조
를 구현해놓은 것
자료구조
: 객체의 저장/삭제/조회 등의 기능을 제공하는 것Collection<E> 인터페이스
를 이용해서 다양한 자료구조의 기능을 추상화하고, 각각의 자료구조에 대한 다양한 구현 클래스를 제공한다.Collection<E> 인터페이스 구현객체의
반환값을 반환하는 메소드는 절대로 반환값이 null 일 수 없다.배열 | 콜렉션 | |
---|---|---|
값 | 기본자료형, 객체 | 객체 (기본자료형은 Wrapper 객체로 대체) |
크기 | 불변 | 가변 |
메소드 | 없음 | 저장/삭제/조회/검색 기능을 제공하는 메소드가 있음 |
생성 표현식 | 자료형[] 참조변수명 = new 자료형[크기]; | 콜렉션 <자료형> 참조변수명 = new 콜렉션<>(); |
객체명 <E> { }
와 같이 정의한다.E
는 클래스<E>
의 타입파라미터
이다. 어떤 글자든 상관 없고, 여러 개 정의할 수 있다.타입, 메소드의 반환타입, 매개변수
등을 정의한다.package util.generic;
/*
* Box<E> 클래스는 제네릭 클래스이다.
* Box<E> 클래스의 E는 타입파라미터이다.
* 객체 생성시점에 E의 타입을 지정할 수 있다.
* 객체 생성시점에 E의 타입을 지정하지 않으면 Object 타입으로 간주한다.
*/
public class Box<E> {
private Object[] items = new Object[10];
public void addItem(int index, E e) {
items[index] = e;
}
@SuppressWarnings("unchecked")
public E getItem(int index) {
return (E) items[index];
}
}
자료형
을 미리 결정하지 않고, 별칭
만 지정한다.타입파라미터
가 바로 그 별칭이다.타입파라미터
로 적혀있던 곳들에 지정한 자료형
이 대입된다.💡 이 중 Set, List는 Collection 인터페이스를 상속하는 주요 하위 인터페이스이다.
Collection 인터페이스에서 List, Set의 공통된 부분을 정의하고 있다.
그러나 Map 인터페이스는 Collection 인터페이스를 상속하지 않고 별도로 정의된다.
이미지 출처: https://breakcoding.tistory.com/113