私のスーパークラスは、HashMap
"M"の値を持ち、その値はArrayListであり、キーの範囲は0〜Nです。特定の行 "x"(Mapのキー)のArrayListをとり、別の行 "y"とスワップするサブクラスでswap()というメソッドを作成しました。以下はおおよそスワップ()メソッドがどのようにされていますMap for Javaの中にあるArrayListをスワップ/アップデートするより良い方法はありますか?
public void swap(int currentRow, int hRow) {
ArrayList <Double> temp = new ArrayList<Double>(super.M.get(hRow));
M.put(hRow, super.M.get(currentRow));\\from super
M.put(currentRow, temp);\\ from super
}
これは間違いなく私がしたい仕事をしていませんが、より効率的な方法がある場合、私は不思議でしたか?特に配列 "temp"を作成せずに、つまりJavaマップ関数を使用するだけで、同じことができますか?
編集1:私は理解して が新しいのArrayListを作成せずに上記を行うための方法ですが、どのような場合は、その特定のArrayListのは、私のような定数2とアップデートでのArrayListに乗算値にしたいとしましょうその後、一時的な配列を作成せずにそれを行うことはできますか?
「super.M.get(hRow)」をarraylistに入れるのはどうでしょうか?なぜあなたは一時割り当てを必要としますか? – Maroun
あなたの質問には、もう一つの不透明な 'Object'として' ArrayList'が含まれています。それについて何も詳述する必要はなく、マップキーの値を入れ替えるだけです。また、クラス階層も問題には関係しません。 –
@ceeks Re:** Edit 1 **:この場合、全く異なる質問です。下の回答はあなたが求めた*実際の質問に答えます。 – Thomas