关于Java的一道思考题,你来试试?

465 阅读1分钟

下面这个代码会输出什么,以及为什么?

import java.util.List;

public class StreamTest {
    public static void main(String[] args) {
        List<Car> carList = List.of(
                new Car("benz", 100),
                new Car("bmw", 200),
                new Car("qq", 50),
                new Car("qq", 60)
        );

        carList.stream()
                .filter(car -> car.getName().equals("qq"))
                .filter(car -> car.getPrice() < 60)
                .findFirst().get();
    }

    static class Car{
        private String name;
        private Integer price;

        public Car(String name, Integer price) {
            this.name = name;
            this.price = price;
        }

        public String getName() {
            System.out.println(name);
            return name;
        }

        public Integer getPrice() {
            System.out.println(price);
            return price;
        }
    }
}