JAVA代码实现按列表中元素的时间字段排序
导语:
工作中遇到一个问题,调用第三方接口返回的数据没有按时间倒序排列,测试说要加,然后在网上找到一个解决办法,这里记录一下
需求:
- 如下图列表,按生日进行倒序排列
用户类
@Data
@AllArgsConstructor
public class User {
private String name;
private String birthday;
}
测试类
@SpringBootTest
@Slf4j
public class TestSort {
private List<User> list = new ArrayList<>();
@BeforeEach
void setUp() {
list.add(new User("张三", "1987-05-23 12:34:07"));
list.add(new User("李四", "1977-05-23 05:04:07"));
list.add(new User("王五", "1987-05-23 09:34:07"));
}
@Test
@DisplayName("测试排序")
void test() {
// (1)顺序排列
list.sort(Comparator.comparing(User::getBirthday));
// (2)倒序排列
Collections.reverse(list);
// (3)输出list
log.info("排序后:"+list);
}
}