首页 > Java > java教程 > 如何在 Java 中按名称对对象数组进行排序?

如何在 Java 中按名称对对象数组进行排序?

Patricia Arquette
发布: 2024-11-16 04:31:03
原创
606 人浏览过

How do I sort an array of objects by name in Java?

在 Java 中按名称对对象数组进行排序

在 Java 中使用对象数组时,有必要对它们进行排序以进行组织且检索方便。如果您不确定如何提取和比较值,则按特定字段对对象数组进行排序可能是一项具有挑战性的任务。

要按特定字段(例如“名称”)对对象数组进行排序,您需要实现 Comparable 接口或提供自定义 Comparator。由于您的对象没有名为“name”的字符串字段,因此我们将创建一个比较器来执行排序。

提取名称字段

提取来自对象的名称,您可以使用已实现的 toString() 方法。假设每个对象都有一个 toString() 方法,该方法返回对象字段的字符串表示形式,包括名称:

public String toString() {
  return (name + "\n" + id + "\n" + author + "\n" + publisher + "\n");
}
登录后复制

创建比较器

To按名称对数组进行排序,我们需要创建一个比较器,根据对象的名称来比较对象名称:

Comparator<Book> comparator = new Comparator<Book>() {

  public int compare(Book o1, Book o2) {
    return o1.name.compareTo(o2.name);
  }
};
登录后复制

在上面的比较器中,compare() 方法比较两个 Book 对象,并根据比较结果返回一个整数。如果 o1 的名称按字典顺序小于 o2 的名称,则返回负整数。如果名称相等,则返回 0。否则,返回正整数。

对数组进行排序

最后,您可以使用 Collections.sort()使用比较器对数组进行排序的方法:

List<Book> books = new ArrayList<Book>();

Collections.sort(books, comparator);
登录后复制

这将按“名称”字段对对象数组进行排序升序。您可以通过反转比较逻辑来修改比较器以降序排序。

以上是如何在 Java 中按名称对对象数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板