Java リンクリスト
Java リンクリスト
前の章では、ArrayList
クラスについて学びました。LinkedList
クラスはArrayList
とほとんど同じです。
例
// Import the LinkedList class
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
LinkedList<String> cars = new LinkedList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
System.out.println(cars);
}
}
ArrayListとLinkedList の比較
LinkedList
クラスは、ArrayList
と同じように、同じ型のオブジェクトをたくさん含むことができるコレクションです。
LinkedList
クラスは、ArrayList
クラスと同じメソッドを持っています。つまり、アイテムの追加、アイテムの変更、アイテムの削除、リストのクリアが同じようにできます。
ただし、ArrayList
クラスとLinkedList
クラスは同じように使用できますが、構築方法が大きく異なります。
ArrayList の仕組み
ArrayList
クラスの内部には通常の配列があります。要素が追加されると、配列に配置されます。配列が十分に大きくない場合、新しいより大きな配列が作成されて古い配列が置き換えられ、古い配列は削除されます。
LinkedList の仕組み
LinkedList
アイテムを「コンテナ」に保管します。リストには最初のコンテナへのリンクがあり、各コンテナにはリスト内の次のコンテナへのリンクがあります。要素をリストに追加するには、要素を新しいコンテナーに配置し、そのコンテナーをリスト内の他のコンテナーの 1 つにリンクします。
いつ使用するか
データの保存とアクセスはArrayList
を、データの操作はLinkedList
を使います。
LinkedListメソッド
多くの場合、リスト内のランダムなアイテムにアクセスする必要があるのが普通なので、ArrayList
の方が効率的ですが、LinkedList
には特定の操作をより効率的に行うためメソッドがいくつか用意されています。
方法 | 説明 | 試してみてください |
---|---|---|
addFirst() | リストの先頭に項目を追加します。 | 試す» |
addLast() | リストの最後にアイテムを追加する | 試す» |
removeFirst() | リストの先頭から項目を削除します。 | 試す» |
removeLast() | リストの末尾からアイテムを削除する | 試す» |
getFirst() | リストの先頭にあるアイテムを取得する | 試す» |
getLast() | リストの最後にあるアイテムを取得する | 試す» |
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。