需求: 需要對List中的每個User按照birthday順序排序,時間由小到大排列。
代碼實現:
1 import java.text.SimpleDateFormat; 2 import java.util.*; 3 4 public class ListSort { 5 public static class UserBean { 6 private String id; 7 private String birthday; 8 9 public String getId() { 10 return id; 11 } 12 13 public void setId(String id) { 14 this.id = id; 15 } 16 17 public String getBirthday() { 18 return birthday; 19 } 20 21 public void setBirthday(String birthday) { 22 this.birthday = birthday; 23 } 24 } 25 26 public static void main(String[] args) { 27 List<UserBean> list = new ArrayList<UserBean>(); 28 UserListGenerate(list); 29 System.out.println("********排序前*******");
for(UserBean user: list){
System.out.println(user.getBirthday());
} 30 31 ListSort(list); 32 System.out.println("******排序后*****");
for(UserBean user: list){
System.out.println(user.getBirthday());
} 33 } 34 35 private static void UserListGenerate(List<UserBean> list) { 36 UserBean user1 = new UserBean(); 37 UserBean user2 = new UserBean(); 38 UserBean user3 = new UserBean(); 39 user1.setId("zhagnsan"); 40 user1.setBirthday("1980-11-01"); 41 42 user2.setId("lisi"); 43 user2.setBirthday("1981-12-01"); 44 45 user3.setId("wangwu"); 46 user3.setBirthday("1980-12-01"); 47 48 list.add(user1); 49 list.add(user2); 50 list.add(user3); 51 } 52 53 private static void ListSort(List<UserBean> list) { 54 Collections.sort(list, new Comparator<UserBean>() { 55 @Override 56 public int compare(UserBean o1, UserBean o2) { 57 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 58 try { 59 Date dt1 = format.parse(o1.getBirthday()); 60 Date dt2 = format.parse(o2.getBirthday()); 61 if (dt1.getTime() > dt2.getTime()) { 62 return 1; 63 } else if (dt1.getTime() < dt2.getTime()) { 64 return -1; 65 } else { 66 return 0; 67 } 68 } catch (Exception e) { 69 e.printStackTrace(); 70 } 71 return 0; 72 } 73 }); 74 } 75 }