在这种情况下,如何将maxDiff值添加到ArrayList中?

时间:2019-03-09 18:53:12

标签: java for-loop arraylist

所以在我的findProfit()中,我有一个if语句:if(priceDiff> maxDiff)。如果满足该条件,我希望它设置maxDiff = priceDiff,它可以正常工作,但是然后我希望它也采用新的maxDiff值并将其存储在我的købtAktieArrayList中。那,我无法工作,我的arraylist一直返回“ null”。有人可以帮忙吗?

public class ProfitCalculator {

static int minValue, maxValue, maxDiff;
static Calendar timeMin, timeMax;
static int indeksMinMinut, indeksMaxMinut;
static ArrayList<Integer> købtAktie;


public static void main(String args[]) {
    int aktiePris[] = new int[]{10, 7, 5, 8, 11, 9};
    ArrayList<Integer> profit = findProfit(aktiePris);
    købtAktie = new ArrayList<>();

    System.out.println("profit: " + købtAktie);

}

public static ArrayList<Integer> findProfit(int[] inputArray) {

    /*if (inputArray.length < 1) {
        return 0;
    }*/

    maxDiff = 0;
    minValue = inputArray[0];
    maxValue = minValue;

    for (int i = 1; i < inputArray.length; i++) {
        if (inputArray[i] > maxValue) {
            maxValue = inputArray[i];
            indeksMaxMinut = i;
            int priceDiff = maxValue - minValue;
            if (priceDiff > maxDiff) {
                maxDiff = priceDiff;
                købtAktie.add(maxDiff);
            }
        } else if (inputArray[i] < minValue) {
            minValue = maxValue = inputArray[i];
            indeksMinMinut = i;
        }
    }

    return købtAktie;
}
}

1 个答案:

答案 0 :(得分:0)

您要在操作后实例化一个列表。这行:

købtAktie = new ArrayList<>();

应在此之前调用:

findProfit(aktiePris);

请注意,我没有使用任何返回值-该方法可以是void,因为它对全局变量进行操作(不是很好,但是可以使用)。