#1. 配列とは何ですか?リンクリストとは何ですか?
(推奨される関連する面接の質問: java の面接の質問)
配列は、体に数字を付けて一列に並んでいる人々のようなものです。 10 人目を見つける 簡単、その人に付いているシリアル番号に基づいてすぐに見つけることができます。ただし、挿入や削除が遅く、ある位置で人物を挿入したり削除したりすると、それ以降の人物の番号が変わってしまいます。もちろん、人は常にすぐに追加または削除されます。
リンク リストは、前の要素の参照が次の要素を指す記憶構造です。リンク リストは要素をポインタで接続します。
リンク リストは、人が椅子の中に立っているかのようなものです。手をつないで輪になりますが、10人目を見つけるのは簡単ではなく、1人目から順番に数えていかなければなりません。ただし、挿入と削除は高速です。挿入時は二人の手を解き、新たに加えた人の手を取り直すだけ。削除も同様です。
Java では、ArrayList と LinkedList はそれぞれ配列とリンク リストを使用して内部実装されます。
2. 配列とリンク リストの違いは何ですか?
違い: リンク リストはリンクされたストレージ構造であり、配列はシーケンシャル ストレージ構造です。 。
リンク リストはポインターを介して要素を要素に接続しますが、配列はすべての要素を順番に格納します。
(推奨される関連チュートリアル: java 入門チュートリアル )
リンク リスト内の要素の挿入と削除は、配列内の要素よりも簡単です。要素を移動する必要はありません。長さの拡張は簡単に実現できますが、要素を見つけるのはより困難です。
配列内の要素を見つけるのは比較的簡単ですが、挿入と削除はより複雑です。プログラミングの最初に指定する必要がありますが、最大長に達すると、展開長はリンクリストほど良くなくなります。
同じ: どちらの構造もデータの逐次保存を実現でき、構築されたモデルは線形構造になります。
3. Java コレクションと配列の特性
配列の特性: 固定サイズ、同じデータ型のデータのみを格納可能
コレクションの特性:サイズ 動的に拡張でき、さまざまなタイプのデータを保存できます
#(関連ビデオ チュートリアルの推奨事項:Java ビデオ チュートリアル)
4. LinkedList の基礎となる実装
LinkedList は二重リンクリストで実装されており、リンクリストとして実装されているため、ランダムアクセス効率は ArrayList よりも低くなりますが、シーケンシャルアクセス効率は比較的高くなります。各ノードには先行ノード (前のノードへのポインタ) と後続ノード (後続ノードへのポインタ) があり、その効果は次のとおりです: 1. ループには for を使用します。 ArrayLIst と配列では、LinkedList を大量にループするとプログラムが停止します。for は配列構造のループや添字の走査に適しています。 2. LinkedList のループ処理には foreach の使用が適しており、二重リンクリスト構造を使用した実装の場合は foreach ループを使用する必要があります。以上がJava の古典的な面接質問集 (6)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。