所以在我的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;
}
}
答案 0 :(得分:0)
您要在操作后实例化一个列表。这行:
købtAktie = new ArrayList<>();
应在此之前调用:
findProfit(aktiePris);
请注意,我没有使用任何返回值-该方法可以是void
,因为它对全局变量进行操作(不是很好,但是可以使用)。