Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何比较和排序数组中的对象_Java_Arrays_Sorting - Fatal编程技术网

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);