java.time 패키지
- 시간을 표현하는 LocalTime 클래스
- 날짜를 표현할 때는 LocalDate 클래스
- 날짜와 시간 모두 필요할 때는 LocalDateTime 클래스를 사용
- 두 날짜의 차이를 표현하는 Period
- 두 시간의 차이를 표현하는 Duration
- java.time패키지에 속한 클래스의 객체를 생성하는 가장 기본적인 방법은 now()와 of()를 사용하는 것이다.
LocalDateTime l = LocalDateTime.now();
LocalDateTime l = LocalDateTime.of(2015,11,23);
LocalDateTime l = LocalDateTime.parse("2015-11-23");
컬렉션 프레임웍
- 자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미
- 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것입니다.
- 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현됩니다.

- List와 Set의 공통된 부분을 다시 뽑아서 새로운 Collection 정의
- List: 순서가 있는 데이터의 집합, 데이터의 중복을 허용한다.
- Set: 순서를 유지하지 않는 데이터의 집합. 데이터의 중복 허용 x
- Map: 키와 값이 쌍으로 이루어진 데이터 집합, 순서 유지 x, 키 중복 x, 값 중복 허용
- ArrayList
- List인터페이스를 구현하기 때문에 데이터 저장순서 유지, 중복 허용
- 배열에 순차적으로 저장
- PriorityQueue
- 저장한 순서에 관계없이 우선순위가 높은 것부터 꺼내게 된다.
- null은 저장할 수 없다.
- PriorityQueue는 저장공간으로 배열을 사용하며 각요소를 힙이라는 자료구조 형태로 저장한다.
- Deque(Double Ended Queue)
- Quque의 변형으로 한 쪽 끝으로만 추가/삭제할 수 있는 Queue와 달리, Deque은 양쪽 끝에 추가/삭제가 가능하다.
- HashSet
- 순서 x, 중복 x
- 저장순서 유지하고자 한다면 LinkedHashSet을 사용
- TreeSet
- 이진 검색 트리라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스
- 중복된 데이터의 저장을 허용하지 않으며 정렬된 위치에 저장하므로 저장순서를 유지하지도 않는다.
- HashMap
- 키와 값을 묶어서 하나의 데이터로 저장
- 해싱을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보임
