我有一个对象的ArrayList,我想按其值进行排序。基本上,我有9个不同的数学函数(即
基本上,无论您在哪里看到log、funcValues、exponent、f4、squared等,这些都是计算数学函数答案的函数。该ArrayList的输出为:
f₁(1) = 0.0 f₂(1) = 1 f₃(1) = 1.0 f₄(1) = 0.0 f₅(1) = 1 f₆(1) = 1.0 f₇(1) = 2.0 f₈(1) = 1 f₉(1) = 0.0
我想只对数字进行排序。我尝试以以下方式实现:
f1(n) = log n
,f2(n) = n
,f3(n) = n log n
等)。我将1的值插入到这9个函数中,并将它们的结果与标签一起放入了一个对象的ArrayList中,如下面的代码所示。我希望对整个结果列表进行排序。ArrayList<Object>val1 = new ArrayList<Object>();
val1.add("f\u2081(1) = " + log(funcValues[0]));
val1.add("f\u2082(1) = " + funcValues[0]);
val1.add("f\u2083(1) = " + exponent(funcValues[0]));
val1.add("f\u2084(1) = " + f4(funcValues[0]));
val1.add("f\u2085(1) = " + squared(funcValues[0]));
val1.add("f\u2086(1) = " + cubed(funcValues[0]));
val1.add("f\u2087(1) = " + twoN(funcValues[0]));
val1.add("f\u2088(1) = " + factorial(funcValues[0]));
val1.add("f\u2089(1) = " + f9(funcValues[0]));
基本上,无论您在哪里看到log、funcValues、exponent、f4、squared等,这些都是计算数学函数答案的函数。该ArrayList的输出为:
f₁(1) = 0.0 f₂(1) = 1 f₃(1) = 1.0 f₄(1) = 0.0 f₅(1) = 1 f₆(1) = 1.0 f₇(1) = 2.0 f₈(1) = 1 f₉(1) = 0.0
我想只对数字进行排序。我尝试以以下方式实现:
class ValuesSorted implements Comparator<Object> {
@Override
public int compare(Object v1, Object v2) {
if ()
return 0;
}
}
我卡在if语句上了,因为我不能像这样做:if (v1.getValue > v2.getValue),因为我使用了9个不同的函数调用来获取每个值。
equals
、hashCode
和toString
方法,并为该类实现一个基于值字段排序的比较器Comparator
。 - Marc Baumbach