추상 클래스라 인스턴스 생성 X
Calendar cal = new Calendar() // 에러
Calendar cal = Calendar.getInstance(); // OK
get() - 날짜 및 시간 값 가져오기
set() - 날짜 및 시간 값 변경하기
clear() - set() 사용할 경우 clear() 사용해줘야함.
다수의 객체를 다루기 위한 표준화된 프로그래밍 방식
List : 순서O, 중복 O
Set : 순서 X, 중복 X
Map : 순서 X, 중복 O(키는 중복 X,값은 중복 O)
list 와 set의 공통
기존 구현체의 공통 메서드를 인터페이스에 정의
순서가 있는

List list = List.of("1","2","3"); // 리스트 생성
List copy = List.copyOf(list); // 복사(읽기전용)
copy.add("4"); // 에러
copyOf()로 복사한 list는 읽기 전용이라 추가 및 변경이 불가
List copy = new ArrayList(List.copyof(list));
copy.add("4");
추가 및 변경하려면 복사한 list를 새로운 list에 저장하고 추가 및 변경을하면 가능하다.
배열 기반의 컬렉션 클래스 Vector는 동기화 O
ArrayList 동기화 X
장점 : 구조 간단, 요소 접근시간 짧음
단점 : 크기변경 x (복사 해서 다른 list에 넣어야함), 비 순차적인 데이터 추가/ 삭제 오래걸림
Test Driver Develop(테스트 주도 개발)
연결 리스트. 배열의 단점을 보완, 순서가 있음.
불 연속적으로 존재하는 데이터를 연결, 요소의 추가/삭제에 유리
컬렉션 조회 방법의 표준화
양방향 가능
hasNext(),hasPreviouse() 등등
배열을 List로 변환하는것
객체 정렬에 필요한 메서드 선언(정렬 기준을 제공)
sort(arr) // 기본 정렬 기준
sort(arr new Descending()); // Descending에 구현된 기준으로 정렬
순서X,중복 X
기존에 객체가 없을때만 저장하고 true 반환
=> 즉 equals()랑 hashcode() 호출