是否可以在我的方法中返回多个项目?

时间:2015-05-18 04:25:50

标签: java return time-complexity

我写了三种不同Big-O复杂性的方法。有没有办法在我的方法中返回多个值而不影响复杂性?提前谢谢!

public static double Nsquare(double[] ar){
    double max=0, difference=0; 
    double maxelement=0, minelement=0 ;
    for (int i=0; i<ar.length;++i){
        for (int j=0; j<ar.length;++j){
            difference=Math.abs(ar[i]-ar[j]);
            if (difference>max){
                max=difference;
                maxelement=ar[i];
                minelement=ar[j];
            }
        }
    }
    //return maxelement;
    //return minelement;
    return max;
}
// O(n*log(n))
public static double NlogN(double[] ar){
    Arrays.sort(ar);
    double max=ar[ar.length-1];
    double min=ar[0];
    double difference=max-min;
    //return max;
    //return min;
    return difference;
}
// O(n)
public static double N(double[] ar){

    double max = Double.NEGATIVE_INFINITY;
    double min = Double.POSITIVE_INFINITY;

    for(double x: ar){
        if(min > x) {min =x;}
        if(max < x) {max =x;}
    }
    //return max;
    //return min;
    return Math.abs(max-min); 
}

3 个答案:

答案 0 :(得分:3)

不能返回多个项目。但你可以创建那些很多项目的对象,然后你可以返回它。

答案 1 :(得分:1)

在java中,您无法单独返回多个值 。您可以做的是,您可以将要返回的所有值添加到列表中,然后将引用返回到列表

这样的事情:

List<Double> doubleList = new ArrayList<>();
doubleList.add(max);  // index 0
doubleList.add(maxelement); // index 1
doubleList.add(minelement);  // index 2

return doubleList;

您必须更改方法签名以及如何调用此方法。

答案 2 :(得分:0)

只需编写一个包含字段max,maxelement,minelement的新类。将此类设置为返回类型。

class Answer{
    private double max;
    private double maxelement;
    private double minelement;
    public Answer(double max, double maxelement, double minelement){
         this.max = max;
         this.maxelement = maxelement;
         this.minelement = minelement;
    }

    public double getMax() {
        return max;
    }
    public double getMaxelement() {
        return maxelement;
    }
    public double getMinelement() {
        return minelement;
    }
}

然后回复:

public static Answer Nsquare(double[] ar){
       --
       your code
       --
       return new Answer(max, maxelement, minelement);
}