在 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中文网其他相关文章!