@Data@AllArgsConstructorpublic class User1 {private String name;private String birthday;}
public class SortUser {public static void main(String[] args) {List<User1> list = new ArrayList<>();// list.add(new User1("张三", "1987-05-23 12:34:07"));// list.add(new User1("李四", "1977-05-23 05:04:07"));// list.add(new User1("王五", "1987-05-23 09:34:07"));list.add(new User1("王五1", "-03-01"));list.add(new User1("王五2", "-12-31"));list.add(new User1("王五3", "-10-23"));list.add(new User1("王五4", "-05-01"));list.add(new User1("王五5", "-10-31"));//(1)顺序排列list.sort(paring(User1::getBirthday));//(2)输出listSystem.out.println("排序后1:"+list);//(3)倒序排列Collections.reverse(list);//(4)输出listSystem.out.println("排序后2:"+list);}}
工作中遇到一个问题,调用第三方接口返回的数据没有按时间倒序排列,测试说要加,然后在网上找到一个解决办法,这里记录一下
需求:
如下图列表,按生日进行倒序排列用户类
@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(paring(User::getBirthday));
// (2)倒序排列
Collections.reverse(list); //
(3)输出list
log.info("排序后:"+list);
}
}
测试结果
参考资料
Java实现 根据list列表元素的时间字段进行排序