输入:
["-5", "-12", "0", "20", "9", "-20", "37"]
输出:
["0", "-5", "9", "-12", "-20", "20", "37"]
为了得到最小的函数结果,我应该使用什么逻辑?
我有一个函数类,它比较2个项目(int)并返回其中的最小值:
class ListComparator implements Comparator<String> {
@Override
public int compare(String a, String b) {
int intA = Integer.parseInt(a);
int intB = Integer.parseInt(b);
int calculatedA = calc(intA);
int calculatedB = calc(intB);
return (calculatedA < calculatedB) ? intA : intB;
}
private int calc(int x) {
double form = Math.pow(5*x, 2) + 3;
int result = (int) form;
return result;
}
}
看起来您需要根据模数(函数Math.abs())对数组或列表进行排序。
return calculatedA > calculatedB ? -1 : (calculatedA < calculatedB) ? 1 : 0;
我通过返回解决了这个问题
public void sort(List<String> sourceList) {
Collections.sort(sourceList, new ListComparator());
Collections.reverse(sourceList);
}
在我使用Collections.sort()之后:
return calculatedA > calculatedB ? 1 : (calculatedA < calculatedB) ? -1 : 0;
我试着用这个来按升序排列,但它无济于事:
PD_8知道如何按升序获得它,这样我就不用CCD_2了吗?