chap13.
데이터의 타입을 일반화한다는 의미
제네릭 타입(T, E, K, V)을 활용하여 하나의 클래스로 해당 제네릭 타입에 변화를 줘서 제네릭 클래스의 인스턴스를 다양한 타입을 지닌 인스턴스로 활용할 수 있다.
GenericTest<Integer> gt = new GenericTest<Integer>();
<> 안의 타입은 기본형(int, double)은 직접 못 넣고 래퍼(Wrapper) 클래스(Integer, Double)를 넣어야 합니다.
제네릭 클래스의 인스턴스를 유연하게 활용하기 위한 문법이다. 메소드의 매개변수로 받을 시 타입을 원하는 만큼으로 제한하는 것으로 불특정한 제네릭 클래스 타입을 조금 더 활용할 수 있다.
<?>: 모든 타입을 허용하는 와일드 카드
<? extends T>: T 타입 또는 T의 하위 타입을 허용하는 와일드 카드
<? super T>: T 타입 또는 T의 상위 타입을 허용하는 와일드 카드
chap 14.
:많은 데이터들을 효과적으로 처리할 수있는 방법을 제공하는 클래스들의 집합
Collection 인터페이스는 List, Set, Queue 로 크게 3가지 상위 인터페이스로 분류가 된다.

List<E> **순서가 있는** 데이터의 집합으로, 데이터의 **중복을 허용**한다.
Set<E> **순서가 없는** 데이터의 집합으로, 데이터 **중복 허용하지 않는다.**
Map<K, V> 키와 값이 쌍를 이루어 구성되는 데이터 집합으로 순서가 없다. 키의 중복은 허용되지 않지만, 값의 중복은 허용된다.
List 인터페이스 : 순서가 있는 데이터의 집합(저장 순서 유지). 중복 저장 허용
- ArrayList, LinkedList, Vector, Stack
자바에서 제공하는 기본 배열보다 느릴 수 있지만 동적 배열이 구현되어 있음
(배열의 단점을 보완하기 위해 만듦)

