【问题标题】:Sort object of a class in java in most efficient way以最有效的方式在java中对类的对象进行排序
【发布时间】:2015-05-18 19:33:54
【问题描述】:

我有汽车类,它的距离可变。我想以最有效的方式对汽车类的对象进行排序。我试过下面的代码进行排序,但这不是一种有效的方法。任何人都可以帮助我最有效的编码方式。

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];        
        }
   }
}

在上面的代码中 huandai 是汽车对象。

【问题讨论】:

标签: java arrays multithreading oop collections


【解决方案1】:

您可以使用比较器。

给定汽车类:

class Car {
       private long distance;

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

       public void setDistance(long distance){
          this.distance = distance;
       }
}

和Comparator DistanceComparator:

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

使用比较器对 Car 对象进行排序:

class Main{
    private static void main(String[] args){
      Foo foo = new Foo();
      List<Car> carList = foo.getAllCars();
      Collections.sort(car, new DistanceComparator());
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 2014-07-26
    • 2017-01-29
    • 2017-12-12
    相关资源
    最近更新 更多