[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과 같은 예외를 처리하는 코드를 넣도록 하자


참고자료