List<User> 按照年龄String(转换为Integer)类型年龄age字段排序,降序
时间: 2024-02-09 09:11:32 浏览: 180
List<map>多字段组合排序
5星 · 资源好评率100%
如果您需要按照年龄字段进行排序,但是年龄字段是以String类型存储的,您可以使用Java 8中的Stream API以及Lambda表达式来实现。具体代码如下:
```java
List<User> userList = new ArrayList<>();
// 假设已经将用户信息添加到userList中
List<User> sortedList = userList.stream()
.sorted((u1, u2) -> Integer.compare(Integer.parseInt(u2.getAge()), Integer.parseInt(u1.getAge())))
.collect(Collectors.toList());
```
以上代码中,我们使用了Stream API的sorted方法对List<User>进行排序。sorted方法接收一个Comparator参数,该参数定义了排序的规则。在本例中,我们使用了Lambda表达式来比较年龄字段。由于年龄是以String类型存储的,因此我们需要先将其转换为Integer类型,然后使用Integer.compare方法进行比较。使用u2.getAge() - u1.getAge()也是可以的,但是这种方式可能会出现溢出的问题。最后,我们使用collect方法将排序后的结果收集到一个新的List中。
阅读全文