java list找到符合元素属性的元素
时间: 2023-09-27 20:04:56 浏览: 88
java8如何通过Lambda处理List集合
可以使用 Java 8 的 Stream API 来实现。假设你有一个 List,其中的元素是自定义的类,该类具有属性 name 和 age。现在你想找到其中所有年龄大于等于 18 岁的元素,可以按照以下方式实现:
```java
List<Person> people = new ArrayList<>();
// 添加 Person 对象到 List 中
List<Person> filteredPeople = people.stream()
.filter(person -> person.getAge() >= 18)
.collect(Collectors.toList());
```
上述代码中,我们使用 `stream()` 方法将 List 转换成 Stream,然后使用 `filter()` 方法过滤出符合条件的元素,最后使用 `collect()` 方法将 Stream 转换成 List。
如果你的类没有实现 `Comparable` 接口,你可能还需要自定义一个比较器来完成排序操作。例如,如果你想按照年龄从小到大排序,可以使用以下代码:
```java
List<Person> sortedPeople = people.stream()
.sorted(Comparator.comparingInt(Person::getAge))
.collect(Collectors.toList());
```
上述代码中,我们使用 `sorted()` 方法按照年龄从小到大排序,并使用 `comparingInt()` 方法指定比较器。注意,这里使用了方法引用 `Person::getAge`,它等价于使用 lambda 表达式 `person -> person.getAge()`。
阅读全文