람다, 내부클래스, 익명클래스 - 실습(2)

말하는 감자·2025년 1월 8일
0
post-thumbnail

Code

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

public class Car2 {
    public String name;
    public int capacity;
    public int price;
    public int age;

    public Car2(String name,int capacity,int price,int age){
        this.name=name;
        this.capacity=capacity;
        this.price=price;
        this.age=age;
    }

    public String toString(){
        return name;
    }

    public static void main(String[] args) {
        List<Car2> cars=new ArrayList<>();
        cars.add(new Car2("작은차",2,800,3));
        cars.add( new Car2("봉고차",12,1500,8) );
        cars.add( new Car2("중간차",5,2200,0) );
        cars.add( new Car2("비싼차",5,3500,1) );
        
        printCarCheaprthan(cars,2000);
    }

    private static void printCarCheaprthan(List<Car2> cars, int i) {
        for(Car2 car:cars){
            if(car.price<i){
                System.out.println(car);
            }
        }
        
    }

}

람다식으로 변형

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

public class Car2 {
    public String name;
    public int capacity;
    public int price;
    public int age;

    public Car2(String name,int capacity,int price,int age){
        this.name=name;
        this.capacity=capacity;
        this.price=price;
        this.age=age;
    }

    public String toString(){
        return name;
    }

    public static void main(String[] args) {
        List<Car2> cars=new ArrayList<>();
        cars.add(new Car2("작은차",2,800,3));
        cars.add( new Car2("봉고차",12,1500,8) );
        cars.add( new Car2("중간차",5,2200,0) );
        cars.add( new Car2("비싼차",5,3500,1) );
        
        printCarCheaprthan(cars,2000);
    }

    private static void printCarCheaprthan(List<Car2> cars, int price) {
        cars.stream()
                .filter(i -> i.price<price)
                .forEach(System.out::println);

    }
}
profile
주니어개발자(?)

0개의 댓글