小编use*_*934的帖子

如何编写通用比较器,可以对所有必要的字段进行排序?

我需要在我班级的所有领域实现排序,我为班上的每个领域编写了一个比较器.但我必须为每个字段编写一个单独的比较器.我认为这不是很正确.如何为我的班级编写一个可以对所有字段进行排序的通用比较器?

我的实体:

public class User {
    private long id;
    private String name;
    private int age;
 .....................
Run Code Online (Sandbox Code Playgroud)

我的比较器:

public class UserComparatorById implements Comparator<User> {   
    public int compare(User user1, User user2) {        
       int result = (int)(user1.getId() - user2.getId());
       if (result != 0) return (int)(result/Math.abs(result));        
       result = user1.getName().compareTo (user2.getName());
       if (result != 0) return (int)(result/Math.abs(result));
       result = user1.getAge() - user2.getAge();
       return (result != 0) ? (int)(result/Math.abs(result)) : 0;
    }
}
Run Code Online (Sandbox Code Playgroud)
public class UserComparatorByName implements Comparator<User> { 
    public int compare(User user1, User user2) { …
Run Code Online (Sandbox Code Playgroud)

java comparator

4
推荐指数
1
解决办法
2013
查看次数

标签 统计

comparator ×1

java ×1