[解決済み] ArrayListにオブジェクトを追加し、後で修正する
2023-05-30 09:57:57
質問
ArrayList があり、そこにオブジェクトを追加し、後でこのオブジェクトを変更した場合、この変更は ArrayList に反映されますか。 それとも、ArrayList にオブジェクトを追加すると、Java はコピーを作成してそれを ArrayList に追加するのですか。
このオブジェクトへの参照をnullに変更した場合はどうなりますか?それは、ArrayListのオブジェクトも今NULLであることを意味しますか?
どのように解決するのですか?
この変更はArrayListに反映されるのでしょうか?
はい、あなたが 参照 を追加したからです。あなたが追加した参照は、まだ同じオブジェクト(あなたが変更したもの)を指しています。
または私がArrayListにオブジェクトを追加するとき、Javaはコピーを作成し、ArrayListにそれを追加しますか?
いいえ、オブジェクトはコピーされません。(オブジェクトへの参照はコピーされます)。
このオブジェクトの参照をnullに変更した場合はどうなりますか?それは、ArrayListのオブジェクトもnullになったということでしょうか?
いいえ、元のリファレンスの内容が コピーされた されるからです。(注意してほしいのは 参照 がコピーされるのであって、オブジェクトがコピーされるのではないことに注意してください)。
デモです。
StringBuffer sb = new StringBuffer("foo");
List<StringBuffer> list = new ArrayList<StringBuffer>();
list.add(sb);
System.out.println(list); // prints [foo]
sb.append("bar");
System.out.println(list); // prints [foobar]
sb = null;
System.out.println(list); // still prints [foobar]
関連
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] ArrayListの初期化を1行で行う。
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] java.lang.UnsupportedClassVersionError を修正する方法。サポートされていないメジャー.マイナーバージョン
-
[解決済み] Javaクラスにおけるcanonical name、simple name、class nameの違いは何ですか?
-
[解決済み] Javaでオブジェクトをコピーするにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NullPointerException - java.lang.
-
executeQuery()でデータ操作文が発行できない。解決方法
-
Solve モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory エラー
-
Uncaught ReferenceError: は定義されていません。
-
JAVA_HOME環境変数が正しく定義されていない問題を解決する
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
無効なメソッド宣言
-
FindBugの使用概要
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ