[Java] Java List에서 get(0)와 findFirst()의 차이
환경
- Java
차이
List의 get(0)
- 첫 번째 요소를 반환
- 해당 요소가 비어있다면
IndexOutOfBoundsException
발생
List<String> myList = Arrays.asList("1", "2", "3");
String firstElement = myList.get(0);
Stream의 findFirst()
- 주어진 조건에 맞는 첫 번째 요소를 찾아 반환하며 조건을 만족하는 요소가 없을 경우
Optional.empty()
를 반환 - Java 8 이후 사용 가능
List<String> myList = Arrays.asList("1", "2", "3");
Optional<String> firstElementOptional = myList.stream().findFirst();
if (firstElementOptional.isPresent()) {
String firstElement = firstElementOptional.get();
}
기억하기
- List와 같은 자료구조에서는 첫 번째 또는 다른 요소에 접근시
IndexOutOfBoundsException
또는NullPointerException
과 같은 예외를 처리하는 코드를 넣도록 하자