Java 根据元素的自然顺序对列表进行排序
我想要以下代码的降序排序类型: 这是升序排序:Java 根据元素的自然顺序对列表进行排序,java,sorting,comparator,Java,Sorting,Comparator,我想要以下代码的降序排序类型: 这是升序排序: public static <T extends Vm> void sortByCpuUtilization(List<T> vmList) { Collections.sort(vmList, new Comparator<T>() { @Override public int compare(T a, T b) throws ClassCastException {
public static <T extends Vm> void sortByCpuUtilization(List<T> vmList) {
Collections.sort(vmList, new Comparator<T>() {
@Override
public int compare(T a, T b) throws ClassCastException {
Double aUtilization = a.getTotalUtilizationOfCpuMips(CloudSim.clock());
Double bUtilization = b.getTotalUtilizationOfCpuMips(CloudSim.clock());
return bUtilization.compareTo(aUtilization);
}
});
}
公共静态无效SortByCpu利用率(列表vmList){
Collections.sort(vmList,newcomparator(){
@凌驾
公共int比较(ta,tb)抛出ClassCastException{
双重自动化=a.getTotalizationofpumpips(CloudSim.clock());
Double bUtilization=b.gettotalizationofpumpips(CloudSim.clock());
收益分配。比较(自主化);
}
});
}
将a与b进行比较:
public static <T extends Vm> void sortByCpuUtilization(List<T> vmList) {
Collections.sort(vmList, new Comparator<T>() {
@Override
public int compare(T a, T b) throws ClassCastException {
Double aUtilization = a.getTotalUtilizationOfCpuMips(CloudSim.clock());
Double bUtilization = b.getTotalUtilizationOfCpuMips(CloudSim.clock());
return aUtilization.compareTo(bUtilization);
}
});
}
公共静态无效SortByCpu利用率(列表vmList){
Collections.sort(vmList,newcomparator(){
@凌驾
公共int比较(ta,tb)抛出ClassCastException{
双重自动化=a.getTotalizationofpumpips(CloudSim.clock());
Double bUtilization=b.gettotalizationofpumpips(CloudSim.clock());
回归自我化。比较(自我化);
}
});
}
有几种方法可以做到这一点。首先,您可以实现一个反向比较器:
public static <T extends Vm> void sortByCpuUtilizationDesc(List<T> vmList) {
Collections.sort(vmList, new Comparator<T>() {
@Override
public int compare(T a, T b) throws ClassCastException {
Double aUtilization = a.getTotalUtilizationOfCpuMips(CloudSim.clock());
Double bUtilization = b.getTotalUtilizationOfCpuMips(CloudSim.clock());
return aUtilization.compareTo(bUtilization); // Note this is reversed
}
});
}
非常感谢你的回复。这对我很有帮助。非常感谢你的回复。这对我很有帮助
public static <T extends Vm> void sortByCpuUtilizationDesc(List<T> vmList) {
// Same comparator as before, should be extracted to a named class.
Collections.sort(vmList, Collections.reverseOrder(new Comparator<T>() {
@Override
public int compare(T a, T b) throws ClassCastException {
Double aUtilization = a.getTotalUtilizationOfCpuMips(CloudSim.clock());
Double bUtilization = b.getTotalUtilizationOfCpuMips(CloudSim.clock());
return aUtilization.compareTo(bUtilization); // Note this is reversed
}
}));
}