java按字母顺序对数组进行排序,但数组中充满了对象,我需要按特定参数进行排序
假设我有一个对象,比如:
public class Fruit{
private String name;
private int quantity;
Fruit(){}
Fruit(String name, int quantity){
this.name = name;
this.quantity= quantity;
}
public int getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我想按名称的字母顺序对一个装满水果的数组进行排序。我最初的想法是,Arrays.sort(a.getName());
不起作用,因为.getName()
只对单个对象起作用。我的一个想法是将所有名称放入一个数组中,按字母顺序排序,然后使用这个列表运行一个循环来对对象进行排序,但这看起来非常麻烦
有什么想法吗?可以看出,我对以这种方式处理对象非常陌生
# 1 楼答案
您不需要让} to the array 来完成,如下所示:
Fruit
类实现Comparable<Fruit>
;您可以通过passing a custom ^{# 2 楼答案
您可以通过实现
compareTo
方法来创建Fruit
类Comparable
,或者为Arrays.sort
方法提供一个自定义的Comparator
:这使用了^{} 方法
# 3 楼答案
我建议您重新定义
Fruit
类以实现Comparable<Fruit>
,以便您可以轻松地按每个元素各自的name
字段对Fruit[]
进行排序:现在,您可以在
Fruit[]
上调用Arrays#sort
,它将按名称按字典顺序对它们进行排序