Java 如何比较和排序数组中的对象
环顾四周,无法找到/理解数组中对象的比较方式。在我下面提供的代码中,我如何能够在一个数组中比较对象,特别是基于这两个对象的成本?然后对数组进行排序,使成本按降序排列Java 如何比较和排序数组中的对象,java,arrays,sorting,Java,Arrays,Sorting,环顾四周,无法找到/理解数组中对象的比较方式。在我下面提供的代码中,我如何能够在一个数组中比较对象,特别是基于这两个对象的成本?然后对数组进行排序,使成本按降序排列 public class PC { private int VRAM; public String Processor; public int RAM; public int Harddrive; public double Cost; public Desktop(String Proc, int ram, int HD,
public class PC
{
private int VRAM;
public String Processor;
public int RAM;
public int Harddrive;
public double Cost;
public Desktop(String Proc, int ram, int HD, int Vram)
{
Processor = Proc;
RAM = ram;
Harddrive = HD;
VRAM = Vram ;
}
public double getCost()
{
Cost = 250 + (5.50*RAM) + (0.10*Harddrive) + (0.30*VRAM);
return Cost;
}
public String toString()
{
return "Desktop\n" + "--------\n" + "CPU: " + Processor + "\nRAM: " + RAM + "GB\n" + "HDD: " + Harddrive + "GB\n" + "VRAM: " + VRAM + "MB" + "\nCost: $" + Cost + "\n";
}
}
}您只需创建一个自定义比较器和用户数组的排序方法 比较国:
public class CostComparator implements Comparator<Computer> {
@Override
public int compare(Computer o1, Computer o2) {
return o1.getCost().compareTo(o2.getCost());
}
}
请更改变量名。变量名以小写字母开头。请确保所有变量名都以小写字母开头。i、 e.
ComputerArray
应该是ComputerArray
的可能副本好的,谢谢,我试试看,我一定要更改我的实例变量
public class CostComparator implements Comparator<Computer> {
@Override
public int compare(Computer o1, Computer o2) {
return o1.getCost().compareTo(o2.getCost());
}
}
Arrays.sort(computerArray , costComparator);