java - 对java中的对象列表进行排序

标签 java collections

我想对 Emp 的列表进行排序基于marks按升序排列的对象字段。

List<Emp> emp= new ArrayList<Emp>();

public class Emp implements Serializable {
    private String empname;
    private String section;
    private int empId;
    private int marks;
    ...

最佳答案

您需要编写一个比较器,否则 Sort 方法会假设您在排序时要使用哪些字段。

 Collections.sort(emp, new Comparator<Emp>() { public int compare(Emp one, Emp two) {
       return one.marks.compareTo(two.marks);
  });

在我的示例中,我将字段标记视为公共(public)字段,如果您愿意,请将 one.marks 替换为 getter。

此外,由于您使用的整数没有compareTo,因此请这样做:

     Collections.sort(list, new Comparator<Emp>() {
       public int compare(Emp one, Emp two) {
           int cmp = one.getMarks() > two.getMarks() ? +1 : one.getMarks() < two.getMarks() ? -1 : 0;
           return cmp;
       }
   });

关于java - 对java中的对象列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26645343/

相关文章:

ruby-on-rails - 空集合检查返回 false 没有条目(Ruby on Rails)

java - 下载成功后返回方法

java - 最快的 Java 框架/服务器组合是什么?

javascript - 如何垂直向下滚动直到显示我想要的文本

javascript - 如何可靠地检查对象是 EcmaScript 6 Map/Set?

c# - 将 Collection<dynamic> 转换为 Collection<double> 的最佳方法?

collections - 集合中的重复项目

java - 在多线程中使用 RabbitMQ 发布者

java - 变量声明后的这个静态 block 是什么?

c# - 将 IEnumerable<class> 的结果绑定(bind)到组合框