[解決済み】ArrayList.clear()とArrayList.removeAll()の違いは何ですか?)
2022-03-30 21:17:28
質問
と仮定すると
arraylist
は次のように定義されます。
ArrayList<String> arraylist
は
arraylist.removeAll(arraylist)
と同じです。
arraylist.clear()
?
とすると
clear()
メソッドの方が効率的に配列リストを空にすることができますか?
を使用する際の注意点はありますか?
arraylist.removeAll(arraylist)
の代わりに
arraylist.clear()
?
解決方法は?
のソースコードは
clear()
:
public void clear() {
modCount++;
// Let gc do its work
for (int i = 0; i < size; i++)
elementData[i] = null;
size = 0;
}
のソースコードです。
removeAll()
(で定義されているように)。
AbstractCollection
):
public boolean removeAll(Collection<?> c) {
boolean modified = false;
Iterator<?> e = iterator();
while (e.hasNext()) {
if (c.contains(e.next())) {
e.remove();
modified = true;
}
}
return modified;
}
clear()
は、余分なメソッド呼び出しに対処する必要がないため、より高速に動作します。
そして、アトレーが指摘するように
c.contains(..)
の時間的複雑性を増大させます。
removeAll
をO(n
2
とは対照的です。
clear
のO(n)である。
関連
-
[解決済み] android.support.v4.app.FragmentActivity' で 'TAG' がプライベートアクセスされている。
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] JDKとJREの違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] java.sql.SQLException: ORA-00933: SQL コマンドが正しく終了していません。
-
[解決済み] JVMフラグCMSClassUnloadingEnabledは、実際に何をするのですか?
-
[解決済み] Java の substring() の時間複雑性
-
[解決済み] このフォーマット(Tue Jul 13 00:00:00 CEST 2010)の日付をJavaの日付に変換する方法(文字列はalfrescoのプロパティに由来しています)
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] JOGLまたはLWJGLの既成のプロジェクト
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] java.lang.ClassCastException: java.lang.Long を java.lang.Integer にキャストできない(java 1.6
-
[解決済み] Javaコンパイラーエラー:ステートメントではありません