Java 判断对象的一个属性是否存在该对象的List中

import java.util.List;


public class JudgeList {
    class Person{
        private  int id;
        private    int age;
        private  String name;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }
    public boolean judgeExit(Person person, List<Person> personList){
        if(personList.stream().filter(w->w.getAge()==person.getAge()).findAny().isPresent()){
            return true;
        }else{
            return false;
        }
    }
}

 

Java 8 中,可以使用 `Stream` API 来判断一个 `List` 集合中的对象属性是否包含某个特定值。这通常可以通过 `anyMatch()` 方法来实现。`anyMatch()` 接受一个 `Predicate` 函数式接口作为参数,并在流中至少有一个元素匹配该条件时返回 `true`。 假设有一个 `Car` 类,其中包含一个 `seatCount` 属性,并且需要判断一个 `List<Car>` 是否包含 `seatCount` 等于特定值的对象。 ### 示例代码 ```java import java.util.*; import java.util.stream.*; class Car { private int seatCount; public Car(int seatCount) { this.seatCount = seatCount; } public int getSeatCount() { return seatCount; } } public class Main { public static void main(String[] args) { List<Car> cars = Arrays.asList( new Car(2), new Car(4), new Car(5) ); boolean containsSeatCount = cars.stream() .anyMatch(car -> car.getSeatCount() == 4); if (containsSeatCount) { System.out.println("列表中包含 seatCount 为 4 的 Car 对象"); } else { System.out.println("列表中不包含 seatCount 为 4 的 Car 对象"); } } } ``` ### 解释 - `cars.stream()`:将 `List<Car>` 转换为一个 `Stream`。 - `anyMatch(car -> car.getSeatCount() == 4)`:检查流中是否存在至少一个 `Car` 对象,其 `seatCount` 等于 4。 - 如果找到匹配项,`anyMatch()` 返回 `true`,否则返回 `false`。 ### 进阶:使用 `Optional` 避免空指针异常 如果需要获取匹配的对象而不是仅仅判断是否存在,可以使用 `filter()` 和 `findFirst()` 的组合,并结合 `Optional` 来避免空指针异常。 ```java Optional<Car> matchingCar = cars.stream() .filter(car -> car.getSeatCount() == 4) .findFirst(); if (matchingCar.isPresent()) { System.out.println("找到 seatCount 为 4 的 Car 对象"); } else { System.out.println("未找到匹配的 Car 对象"); } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值