在java中以最有效的方式对类的对象进行排序

在java中以最有效的方式对类的对象进行排序,java,arrays,multithreading,oop,collections,Java,Arrays,Multithreading,Oop,Collections,我有可变距离的汽车级别。我想以最有效的方式对car类的对象进行排序。我尝试了下面的代码进行排序,但这不是一种有效的方法。有谁能帮我找到最有效的编码方法吗 for(int j=0;j<get_car.no_of_cars;j++) { for(int i=j;i<get_car.no_of_cars;i++) { if(get_car.Hundai[j].distance_covered>get_car.Hundai[i].distance_cove

我有可变距离的汽车级别。我想以最有效的方式对car类的对象进行排序。我尝试了下面的代码进行排序,但这不是一种有效的方法。有谁能帮我找到最有效的编码方法吗

for(int j=0;j<get_car.no_of_cars;j++)
{
   for(int i=j;i<get_car.no_of_cars;i++)
   {

        if(get_car.Hundai[j].distance_covered>get_car.Hundai[i].distance_covered)                            
        {
            A[i]=get_car.Hundai[j];
            get_car.Hundai[j]=get_car.Hundai[i];
            get_car.Hundai[i]= A[i];        
        }
   }
}

对于(int j=0;j您可以使用比较器

给定级别的车辆:

class Car {
       private long distance;

       public long getDistance(){
          return this.distance;
       }

       public void setDistance(long distance){
          this.distance = distance;
       }
}
和比较器距离比较器:

class DistanceComparator implements Comparator<Car> {
    @Override
    public int compare(Car a, Car b) {
        return a.distance < b.distance ? -1 : a.distance == b.distance ? 0 : 1;
    }
}
class Main{
    private static void main(String[] args){
      Foo foo = new Foo();
      List<Car> carList = foo.getAllCars();
      Collections.sort(car, new DistanceComparator());
    }
}
类距离比较器实现比较器{
@凌驾
公共int比较(a车、b车){
返回a.distance
使用比较仪对汽车对象进行排序:

class DistanceComparator implements Comparator<Car> {
    @Override
    public int compare(Car a, Car b) {
        return a.distance < b.distance ? -1 : a.distance == b.distance ? 0 : 1;
    }
}
class Main{
    private static void main(String[] args){
      Foo foo = new Foo();
      List<Car> carList = foo.getAllCars();
      Collections.sort(car, new DistanceComparator());
    }
}
主类{
私有静态void main(字符串[]args){
Foo-Foo=新的Foo();
List carList=foo.getAllCars();
Collections.sort(car,newdistancecomparator());
}
}

<代码>使用<代码>数组>排序< /代码>,并为其提供自定义<代码>比较器< /代码>。您可以使用可比或比较器。因为这是标记为“多线程”,所以您可能需要考虑。