목록 설명
List<Integer> list = List.of(23,46,24,68,null); //NullPointerException Error
먼저 List.of를 사용하여 숫자 예제로 목록을 만들었습니다.
NullPoint 오류가 계속 발생하여 확인했습니다. List.of() 메소드는 목록은 null 값을 포함할 수 없습니다…
null 값을 포함하는 예제 목록을 생성하려는 경우 배열.asList()사용해야
List<Integer> list = Arrays.asList(23,46,24,68,null);
1) 삼항 연산자를 사용한 방법
list.stream()
.map(i->i==null?0:i)
.forEach(System.out::println);
2) 선택적 개체가 있는 메서드
– 값이 있는 값만 출력하고 싶은 경우
list.stream()
.map(Optional::ofNullable)//Optional 객체로 변환
.forEach(e-> e.ifPresent(System.out::println));
– 값이 null인 경우 다른 값으로 대체합니다.
ist.stream()
.map(Optional::ofNullable)//Optional 객체로 변환
.forEach(e->System.out.println(e.orElse(0)));
ofNullable로 선택적 개체를 생성하면 null 값이 올 수 있음을 나타냅니다.
null 값을 만나면 of를 사용한 구성은 실패하므로 가능할 때마다 ofNullable을 사용하여 구성하는 것이 좋습니다.
선택적 객체의 메소드 중 orElse 메소드는 값이 null이면 대체할 값을 반환하고, 그렇지 않으면 원래 값을 반환합니다.
list.stream()
.forEach(e -> System.out.println(
Optional.ofNullable(e).orElse(0)));
위 식에서처럼 forEach에서 한번에 모든 것을 처리하는 방법도 있습니다.
3) Objects 클래스의 nonNull 메서드 사용
list.stream()
.filter(Objects::nonNull)//null값이 아닌것만
.forEach(System.out::println);
개체 nonNull 메서드는 값이 null이 아니면 true를 반환하고 null이면 false를 반환합니다.
따라서 스트림에 부울형 함수인 필터를 사용하면 참 값만 걸러진다.
forEach로 인쇄할 수 있습니다.
![[Java] 자바 ArrayList [Java] 자바 ArrayList](https://blog.korea-industry.kr/wp-content/plugins/contextual-related-posts/default.png)