ホームページ >Java >&#&チュートリアル >Java リストから整数を削除する際の落とし穴を回避するには?

Java リストから整数を削除する際の落とし穴を回避するには?

DDD
DDDオリジナル
2024-12-13 08:10:10252ブラウズ

How to Avoid Pitfalls When Removing Integers from Java Lists?

リストからの整数の削除の落とし穴を克服する

データ操作の領域では、リストのような複雑なデータ構造を扱うと、予期せぬ課題が発生する可能性があります。整数のリストを考えてみましょう:

List<Integer> list = new ArrayList<>();
list.add(5);
list.add(6);
list.add(7);
list.add(1);

list.remove(1) を実行すると、その結果に驚かれるかもしれません。驚くべきことに、インデックス 1 (つまり 6) の要素が削除されます。 list.remove(new Integer(1)) はどうでしょうか?これにより、最初に出現した 1.

が削除されます。これらの微妙な違いにより、複雑なバグが発生する可能性があります。では、整数のリストを扱う場合、2 つの削除メソッド、remove(int Index) と Remove(Object o) をどのように区別すればよいでしょうか?

重要なのは、Java のメソッド解決プロセスを理解することにあります。自動ボクシングと暗黙的なアップキャストは、メソッドが完全に一致しない場合にのみ発生します。 List インターフェイスは、remove(int Index) と Remove(Object o) の両方を定義するため、Java は変換を行わずに引数に最適なメソッドを選択します。

この場合、list.remove(1) が呼び出されます。単一の整数引数に完全に一致するものがあるためです。ただし、 list.remove(new Integer(1)) は、引数が Integer オブジェクトであるため、remove(Object o) メソッドを呼び出します。

したがって、インデックスに基づいて要素を削除するには、remove(int index) を使用します。 )。参照によって要素を削除するには、remove(Object o) を使用します。この理解により、リスト操作を正確に制御し、意図しない動作を防止し、潜在的なバグを防ぐことができます。

以上がJava リストから整数を削除する際の落とし穴を回避するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。