java arraylist 查找_如何通过属性在ArrayList中查找对象

本文介绍了如何在Java8中利用流API进行集合数据的过滤操作,展示了通过`findFirst()`方法查找匹配条件的对象。同时,提出了创建一个通用的`FindUtils`工具类,用于封装不同属性的查找逻辑,提高代码复用性。示例中包括了根据`codeIsIn`、`codeTitre`和`nomTitre`属性查找`Carnet`对象的方法。
摘要由CSDN通过智能技术生成

在Java8中,您可以使用流:

public static Carnet findByCodeIsIn(Collection listCarnet, String codeIsIn) {

return listCarnet.stream().filter(carnet -> codeIsIn.equals(carnet.getCodeIsin())).findFirst().orElse(null);

}

另外,如果您有许多不同的对象(不仅是Carnet),或者想通过不同的属性(不仅是通过cideIsin)找到它,则可以构建一个实用程序类,以将其逻辑封装在其中:

public final class FindUtils {

public static T findByProperty(Collection col, Predicate filter) {

return col.stream().filter(filter).findFirst().orElse(null);

}

}

public final class CarnetUtils {

public static Carnet findByCodeTitre(Collection listCarnet, String codeTitre) {

return FindUtils.findByProperty(listCarnet, carnet -> codeTitre.equals(carnet.getCodeTitre()));

}

public static Carnet findByNomTitre(Collection listCarnet, String nomTitre) {

return FindUtils.findByProperty(listCarnet, carnet -> nomTitre.equals(carnet.getNomTitre()));

}

public static Carnet findByCodeIsIn(Collection listCarnet, String codeIsin) {

return FindUtils.findByProperty(listCarnet, carnet -> codeIsin.equals(carnet.getCodeIsin()));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值