【Java 配列とリスト】
面接選考の際にこれらの理解をうまく言語化できなかった。
再度学び直して、備忘録として残します。
配列は、扱うデータが決まっている時に適し、
リストは、柔軟にデータを扱いたいときに適している。
配列
インデックスを用いて、複数のデータを管理する。
配列は、宣言時に要素数を決めておく必要がある。
→ あとから要素数を増減できない。
配列のデータの保持の仕方は、宣言時にメモリの連続した領域を確保している。
要素数の増減やデータの挿入や入れ替えが容易。
リンクの追加や削除、リンク先の変更をおこなうのみ。
インデックスとは、索引、見出し、添字、指数などの意味を持つ英単語。ITの分野では、書籍の巻末の索引のように、多数のものの中から特定の対象をすばやく見つけ出すため識別情報や、整列された所在情報の一覧などを指すことが多い。
(IT用語辞典 e-Words)
リスト
オブジェクト管理に要素番号を用いる。
リストは、生成時にデフォルトの要素数を指定する必要がない。
→ あとから要素数を自由に追加・削除できる。
リストのデータの保持の仕方は、新たな要素を追加されるたびにメモリの領域を確保する。
はじめに領域を確保しているため、要素数の増減は不可。
要素を入れ替える時は、ある要素を削除して、別の要素を移動させてから、さっき削除した要素を空いた箇所に入れ直す。
要素の検索について
配列では、インデックスを指定すれば直接要素を参照可能であり、どの要素に対しても同時間でアクセスが可能。
→ 何度もランダムな要素にアクセスするような場合に適している。
→ 要素の入れ替えが多かったり、後から追加したりするには適さない。
リストでは、ランダムな要素を検索する時は端の要素からリンクをたどる必要があるので少し時間がかかる。
→ 頻繁な要素の入れ替えや要素の追加や削除がある時に適している。
参考
どう違うの?JavaにおけるListと配列の違いと使い分け
ありがとうございました。
↧