Java 中按多个字段对对象进行排序
按多个字段对数据进行排序是编程中的常见操作。本问题探讨了如何按姓名字母顺序和年龄对人员对象数组进行排序。
使用 Collections.sort 进行多字段排序
要实现此目的,我们可以利用 Collections.sort 方法,它允许基于提供的比较器进行自定义排序。 Comparator 确定如何比较两个对象,使我们能够定义多字段排序策略。
private static void order(List<Person> persons) { Collections.sort(persons, new Comparator() { public int compare(Object o1, Object o2) { String x1 = ((Person) o1).getName(); String x2 = ((Person) o2).getName(); int sComp = x1.compareTo(x2); if (sComp != 0) { return sComp; } Integer x1 = ((Person) o1).getAge(); Integer x2 = ((Person) o2).getAge(); return x1.compareTo(x2); }}); }
在此代码中,compare 方法首先比较两个 person 对象的名称(x1 和 x2) )。如果它们不同,则返回 String.compareTo 方法的结果,指示哪个字符串按字典顺序更大。如果名称相等,则使用 Integer 对象的compareTo 方法继续比较年龄(x1 和 x2)。
通过使用此比较器策略,Collections.sort 方法将按字母顺序对人员对象列表进行排序按姓名排序,如果姓名相同,则会进一步按年龄排序。
以上是如何在 Java 中按多个字段对对象列表进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!