This programmers stack exchange question私はJavaプログラミングのコンセプトにコンセプトを教えてくれました。オブジェクトはポインタとして渡されます。そのことを知ると、そのコンセプトのために私のコードに問題があります。コンテナをパラメータとして渡し、その値を変更しない方法Java?
public double findRollingPivots(ArrayList<Double> listOfCurrentPivots, ArrayDeque<Double> dequeOfAllPivots, double rollingPeriodLength) {
double returnSignal = 0; //this is whatever signal to be returned-- BD BO or profit target
double containerOfPivots = 0; //this holds all of the pivots to be divided in dequeOfCurrentPivots
listOfCurrentPivots.remove(4); /***line4***/
listOfCurrentPivots.add(dequeOfAllPivots.removeLast());
for (int i = 0; i < rollingPeriodLength; i++) { /***line 6***/
containerOfPivots += listOfCurrentPivots.get(i);
}
returnSignal = containerOfPivots/rollingPeriodLength;
return returnSignal;
私の問題は、4行目で、私は常に第四インデックスにある要素を削除しないことである。
は、ここに私のコードです。 deque
でremoveLast()
と呼び出し、毎回新しい要素をpush
と呼ぶほうがはるかに簡単です。
しかし、deque
を使用すると、6行目で、変数をcontainerOfPivots
変数に追加すると、すべての要素が失われてしまいます。私は一時的なdeque
を作成してこれを回避しようとしましたので、パラメータの値を保持することができますが、それはどちらも動作しません。だから、deque
を使用する方法があり、関数内のサイズを枯渇させる心配はありませんか?私は何か見落としていますか?
なぜイテレータを使用しないのですか? – xenteros
私はイテレータを知らなかった。私はjavaに新しいです。提案のおかげで –
これはリストの主な目的です。次/前のポインタに直接アクセスできない場合は、イテレータが必要です。 – xenteros