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() | リストの最後にあるアイテムを取得する | 試す» |