public class User {
private String name;
private Integer age;
public User() {
}
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
//省略get set 方法
}
private static List<User> getOrigUser() {
//准备很多人员--姓名后面的数组为了排序显示方便
User user1 = new User("王大哈21", 21);
User user2 = new User("王二哈45", 45);
User user3 = new User("王三哈23", 23);
User user4 = new User("王四哈30", 30);
User user5 = new User("王五哈28", 28);
User user6 = new User("王六哈20", 20);
List<User> users = new ArrayList<User>();
users.add(user1);
users.add(user2);
users.add(user3);
users.add(user4);
users.add(user5);
users.add(user6);
//users是我们拿到的初始的数据,
return users;
}
//java.util.Comparator
public class MyUserComparator implements Comparator<User>{
/**
* 在该方法中,可以自行定义其他复杂的比较
* 比如年龄相同,如果有性别,女性可以排序靠前等
*/
@Override
public int compare(User user1, User user2) {
//年龄顺序排列
//return user1.getAge() - user2.getAge();
//年龄倒序排列
return user2.getAge() - user1.getAge();
}
}
public static void main(String[] args) {
//获得原始数据
List<User> users = getOrigUser();
//将集合转成数组
User[] array = users.toArray(new User[0]);
//排序
Arrays.sort(array,new MyUserComparator());
//打印结果
for (User user : array) {
System.out.println(user.getName());
}
}
王二哈45
王四哈30
王五哈28
王三哈23
王大哈21
王六哈20
7.25 KB, 下载次数: 109
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |