Java で次の ArrayList を想像してみてください。
ArrayList<Integer> u = new ArrayList<Integer>();
新しい値をプリミティブ型またはラッパー クラスとして追加するときに違いがあるかどうかを知りたいです。
u.add(new Integer(12));
u.add(12);
前もって感謝します!
add
自動ボックス化/ボックス化解除による違いはありません。fighweight パターンを使用し、既知のオブジェクト (-128、127 の範囲) を再利用するため、new Integer(12)
実際には行わないでください。Integer.valueOf(12)
したがって、新しいオブジェクトは作成されません。
などの違いがありremove
ます。
あなたが電話をかけるつもりなら電話をかけるのでremove(Object)
、remove(5)
これremove(int index)
はおそらくあなたが望むものではありません. 数字を削除したい場合、または5 番目の要素を削除したい場合は、これ
を行う必要があります。remove((Integer)5)
5
remove(5)
コンパイラーがu.add(12);
それを書き換えると、公式チュートリアルhttp://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
の詳細を読むよりu.add(Integer.valueOf(12));
も効率的になりますu.add(new Integer(12));