使用比较器对数据结构进行排序
Sorting Datastructures using comparator
我正在尝试通过其中一个实例变量 (distancefrom
) 对数组(ads
,类型 ETstrain
)进行排序。我怎样才能做到这一点?我试过使用比较器,然后使用排序功能。有没有更好的方法/我有没有逻辑谬误?
abstract class distanceComparator implements Comparator<ETstrain> {
@Override
public int compare(ETstrain a, ETstrain b) {
return a.distancefrom < b.distancefrom ? -1 : a.distancefrom == b.distancefrom ? 0 : 1;
}
}
public static <ETstrain> void sort(ads[] a,
Comparator<ETstrain> b)
试一试:
Arrays.sort(yourETStrainArray, distanceComparator);
如果您有列表而不是数组,请使用:
Collections.sort(yourETStrainList, distanceComparator);
工作代码:
public class distanceComparator implements Comparator<ETstrain> {
@Override
public int compare(ETstrain a, ETstrain b) {
return a.distancefrom < b.distancefrom ? -1
: a.distancefrom == b.distancefrom ? 0 : 1;
}
public <ETstrain> void sort(ETstrain[] ads,
Comparator<? super ETstrain> distanceComparator){
Arrays.sort(ads, distanceComparator);
}
}
我正在尝试通过其中一个实例变量 (distancefrom
) 对数组(ads
,类型 ETstrain
)进行排序。我怎样才能做到这一点?我试过使用比较器,然后使用排序功能。有没有更好的方法/我有没有逻辑谬误?
abstract class distanceComparator implements Comparator<ETstrain> {
@Override
public int compare(ETstrain a, ETstrain b) {
return a.distancefrom < b.distancefrom ? -1 : a.distancefrom == b.distancefrom ? 0 : 1;
}
}
public static <ETstrain> void sort(ads[] a,
Comparator<ETstrain> b)
试一试:
Arrays.sort(yourETStrainArray, distanceComparator);
如果您有列表而不是数组,请使用:
Collections.sort(yourETStrainList, distanceComparator);
工作代码:
public class distanceComparator implements Comparator<ETstrain> {
@Override
public int compare(ETstrain a, ETstrain b) {
return a.distancefrom < b.distancefrom ? -1
: a.distancefrom == b.distancefrom ? 0 : 1;
}
public <ETstrain> void sort(ETstrain[] ads,
Comparator<? super ETstrain> distanceComparator){
Arrays.sort(ads, distanceComparator);
}
}