[Java]Listの用途の違いに関して[メモ]

 JavaのListは2種類ある。ArrayListとLinkedListである。

広告

ArrayListは要素を多く参照するときに向く

 内部で配列を保持しているため。要素を追加するスピードは遅く、途中に追加する場合さらにその点でコストがかかる。
 例として、こちらでは、

データベースからデータを大量に読み込み、以後それを順に参照しつつ複雑な計算を行うような場合

があげられています。
 つまり、「サイズは現時点では分からないがデータを読み込んで、それを参照する」場合とかが向いてる感じでしょうか。この場合、できればレコード数を分かるようにしておくとか、最初からある程度の数を想定した配列で対応してもいいと思います。

LinkedListは挿入が多いときに向く

 LinkedListは内部でノードを持ち、前後に繋がる式。要素を足す・引くをする場合はArrayListよりも高速、らしい。
 例として、こちらでは、

プログラム中で発生するデータの入れ物として使われ、時折データベースへ書き出してデータの永続化が図られるような用途

があげられています。
 つまり、「要素が増える予定があるのでサイズの変化するものに取り合えず仮置きし、あとで参照用にするために配列に纏める」がいいかも、ということです。

おまけ:Listから配列への変換法

 私がこのページを参考にするときは、多分Listから配列への変換法も考えている可能性があるので。
 Listから配列へ変換する場合は、list.toArray()のようにして、ListインスタンスにtoArrayを発動させて変換する。

参考にしたサイト

広告

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA