46일차 - java (객체안에 존재 여부 확인, 객체 정렬, 메서드 참조)

Yohan·2024년 4월 25일
0

코딩기록

목록 보기
68/156
post-custom-banner

객체안에 존재 여부 확인

  • anyMatch, allMatch, noneMatch를 활용해서 객체 안에 존재여부 확인 가능
public static void main(String[] args) {

        // 메뉴 목록에서 채식주의자가 먹을 수 있는 요리가 하나라도 존재하는가?
        boolean flag1 = menuList
                .stream()
                .anyMatch(d -> d.isVegeterian());

        System.out.println("flag1 = " + flag1);

        // 메뉴 목록에서 칼로리가 100 이하인 요리가 하나라도 존재하나?
        boolean flag2 = menuList
                .stream()
                .anyMatch(d -> d.getCalories() <= 100);

        System.out.println("flag2 = " + flag2);
        
        // 메뉴 목록의 모든 요리가 1000칼로리 미만입니까?
        // allMatch: 리스트 안에 모든 객체를 검사해서 모두 일치하는 확인
        // noneMatch: 모두 불일치 하는지 검사
        boolean flag3 = menuList
                .stream()
                .allMatch(d -> d.getCalories() < 1000);

        System.out.println("flag3 = " + flag3);

객체 정렬

  • 객체를 정렬을 위해 sort 메서드 사용가능
package day12.stream.comparator;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class Main {

    public static void main(String[] args) {

        List<Student> studentList = new ArrayList<>(
                List.of(
                        new Student("홍철수", 15, 79),
                        new Student("박영희", 17, 41),
                        new Student("손흥민", 11, 11),
                        new Student("감우성", 25, 34)
                )
        );

        // 나이 순으로 오름차 정렬 (나이 적은 순)
        studentList.sort((o1, o2) -> o1.getAge() - o2.getAge());

        // 성적 순으로 내림차 정렬 (성적 높은 순)
        studentList.sort(Comparator.comparing((Student s) -> s.getScore()).reversed());

        // 이름 순으로 오름차 정렬 (가나다순)
        studentList.sort(Comparator.comparing(s -> s.getName()));

        System.out.println(studentList);
    }
}

람다 -> 메서드 참조

  • 람다를 메서드 참조로 변경할 수 있다.
    -> 인텔리제이에서 알려주는 것으로 천천히 공부한다.
profile
백엔드 개발자
post-custom-banner

0개의 댓글