Collection
- 여러 데이터의 묶음을 컬렉션 이라고 부른다.
- 컬렉션은 추상된 객체이다.
- Collection 추상체의 구상체로는 List가있다.
- List의 구상체로
- LinkedList
- ArrayList
- Vector
- Stack
- Set
- HashSet 등등 존재한다.
Collection 사용해보기
Iterator
- 여러 데이터의 묶음을 풀어서 하나씩 처리할 수 있는 수단을 제공한다.
- next()를 통해 다음 데이터를 조회할 수 있다. 역(이전데이터)으로 움직일 수는 없다.
Stream
- JAVA8 이상에서 부터 사용 가능하다.
- 데이터의 연속상에서 제공되는 하나만 취급한다.
- System.in / System.out 이게 모두 사실 스트림이다.
- JAVA8 에서 제공되는 스트림은 input / output에 관련된 스트림과는 다르게 데이터에 관한 스트림이다.
- Stream에는 map, filter, forEach 같은 고차함수(함수형 인터페이스를 사용해서 함수를 인자로 받는 함수)가 제공된다.
Stream 만들기
- generator / iterator 2가지 방법이 있다.
스트림을 사용하면 연속된 데이터에 대해서 풍부한 고차함수들을 사용하여 강력한 기능들을 간결하게 표현할 수 있습니다.
Optional
- NPE(Null Pointer Exception) - 가장 많이 발생하는 에러 중 하나이다.
- 자바에서는 거의 모든것이 래퍼런스이기 때문에 모든것이 null이 될 수 있다는 뜻을 가진다.
- 항상 null을 확인할 필요가 있다.
- 그래서 많이 피곤한 일들이 생겼다 이게 null이 아닌지 확인하는 작업을 해야했다.
이제부터 null 쓰지말자 ! ==> 서로 약속을 했다 : 계약을 한다 : 계약을 하고 프로그래밍을 한다.
- 옵셔널이 있기 전에는 EMPTY(public static final 객체)를 하나 만들어 사용했다.
정리
- null 데이터 : Optional.empty();
- 데이터 : Optional.of(data);
- 확인 : .isEmpty(), .isPresent()