有一个 List<bean> 我定义为list bean里面有个参数schoolName和 Id 这个list长度为2000 现在我有个string 类型的name 想去这个list中匹配看看有没有对应的 怎么写
时间: 2024-02-23 15:02:33 浏览: 148
List集合映射-JavaEE实战系列-hibernate
您可以使用 Java 8 的 Stream API 和 Lambda 表达式来实现对 List<bean> 的过滤操作。具体实现如下:
```java
List<bean> matchedBeans = list.stream()
.filter(bean -> bean.getSchoolName().equals(name))
.collect(Collectors.toList());
```
上面的代码中,我们使用了 `stream()` 方法将 List 转化为 Stream,然后使用 `filter()` 方法对 Stream 进行过滤操作,只保留 `schoolName` 等于指定名称 `name` 的 Bean。最后使用 `collect()` 方法将过滤后的结果转化为 List。
如果你只需要找到第一个匹配的 Bean,可以使用 `findFirst()` 方法:
```java
Optional<bean> matchedBean = list.stream()
.filter(bean -> bean.getSchoolName().equals(name))
.findFirst();
```
上面的代码中,我们使用了 `findFirst()` 方法查找第一个匹配的 Bean,最终返回的是一个 `Optional<bean>` 类型的对象,如果找到了匹配的 Bean,则返回一个包含该 Bean 的 Optional 对象,否则返回一个空的 Optional 对象。
阅读全文