Java では、List と ArrayList の両方がオブジェクトのコレクションの作成に広く使用されています。ただし、この 2 つには微妙ですが重要な違いがあります。
提起された質問は、(1) と (2) が交換可能かどうかを尋ねます。
(1) List<?> myList = new ArrayList<?>(); (2) ArrayList<?> myList = new ArrayList<?>();
答えは、一般に (2) よりも (1) の方が好まれるということです。
(1)が好ましい理由は、インターフェイスへのコーディングとカプセル化の原則によるものです。 List はインターフェイスですが、ArrayList はそのインターフェイスの特定の実装です。
myList を List> として宣言することで、List インターフェイスの任意の実装 (LinkedList、Vector など) をそれに割り当てることができます。この柔軟性により、実行時にアプリケーションに最も適切な実装を選択できます。
対照的に、myList を ArrayList> として宣言すると、それを ArrayList 実装に具体的にバインドすることになります。これにより、後で実装を変更する能力が制限されます。
次の例を考えてみましょう。
List<Integer> myList = new LinkedList<Integer>();
最初は、リストインターフェイス。ただし、ArrayList などのより効率的な実装が適しているパフォーマンスのボトルネックが発生したとします。
この場合、コードベースの他の部分に影響を与えることなく、LinkedList を ArrayList に簡単に交換できます。 ArrayList
以上がJava の List と ArrayList: いつどちらを使用するべきですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。