我对Java不太熟练,如果有人能帮助我弄清楚我遇到的问题,我将不胜感激。
所以这是我的代码:`
static void sum_up_recursive(ArrayList<Double> numbers, int target, ArrayList<Double> partial) {
double s = 0;
for (double x: partial) s += x;
if ( s <target )
System.out.println("sum("+Arrays.toString(partial.toArray())+ " " +partial.size() +")="+target);
if (s >= target)
return;`
它给了我这个结果
sum([1.3, 0.5, 0.5, 1.3, 0.5, 1.3, 1.3, 0.5, 0.5, 0.5] 10)<=12
sum([1.3, 0.5, 0.5, 1.3, 0.5, 1.3, 1.3, 0.5, 1.3] 9)<=12
sum([1.3, 0.5, 0.5, 1.3, 0.5, 1.3, 1.3, 0.5, 0.5, 0.5] 10)<=12
sum([1.3, 0.5, 0.5, 1.3, 0.5, 1.3, 1.3, 0.5, 1.3] 9)<=12
sum([1.3, 0.5, 0.5, 1.3, 0.5, 1.3, 1.3, 0.5, 1.3, 0.5] 10)<=12
sum([1.3, 0.5, 0.5, 1.3, 0.5, 1.3, 1.3, 0.5, 1.3, 0.5, 1.3] 11)<=12
and so on... There are hundreds if it..
我想做的是将所有这些结果存储在一个多数组中,以便更容易地操作它们,或者您可能知道如何在该循环中对它们进行排序。就像选择一个具有更大元素总和的行。
谢谢
答案 0 :(得分:0)
您可以创建一个同时包含List
和总和的类
class Sum {
ArrayList<Double> numbers;
Double total;
}
此类的自定义Comparator
class SumComparator implements Comparator<Pair> {
@Override
public int compare(Sum a, Sum b) {
return Double.compare(a.total, b.total);
}
}
然后你可以像这样对一对Pair数组进行排序:
Sum[] sums = new Sum[]; // initialize with values
Arrays.sort(sums, new SumComparator());
这将根据每个List
对象中每个Sum
个数字的总和对数组或Sum进行排序。