所以在我的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;
}
}
您将在操作后实例化一个列表。这行:
købtAktie = new ArrayList<>();
应该在此之前被调用:
findProfit(aktiePris);
请注意,我没有使用任何返回值-该方法可以void
对全局变量进行操作(效果不是很好,但是可以使用)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句