java中lambda遍历list集合(集合中是对象)根据某个字段排序,并取到该对象
时间: 2024-06-08 18:06:10 浏览: 16
可以使用Java 8中的Stream API和lambda表达式来实现该功能,具体代码如下:
假设有一个对象类Person,其中有属性name和age,我们需要根据age属性进行排序并取到该对象:
```java
List<Person> personList = new ArrayList<>();
// 添加Person对象到personList中
// 根据age属性进行排序并取到该对象
Person person = personList.stream()
.sorted(Comparator.comparing(Person::getAge))
.findFirst()
.orElse(null);
```
上面的代码中,我们使用`stream()`方法将List转换为Stream对象,然后使用`sorted()`方法对age属性进行排序,最后使用`findFirst()`方法获取排好序的第一个元素,并使用`orElse()`方法指定默认值(如果List为空则返回null)。在`comparing()`方法中,我们使用Person类的`getAge()`方法来获取age属性的值。
如果我们需要根据age属性进行倒序排序,则可以将`sorted()`方法改为`sorted(Comparator.comparing(Person::getAge).reversed())`。
如果我们需要获取排序后的List对象,则可以使用`collect()`方法,具体代码如下:
```java
List<Person> sortedPersonList = personList.stream()
.sorted(Comparator.comparing(Person::getAge))
.collect(Collectors.toList());
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)