Java LinkedList getFirst() メソッド

Java LinkedList Java LinkedList


getFirst()は Java のLinkedListクラスが提供するメソッドで、リンクリストの最初の要素を取得するために使用されます。このメソッドはjava.util.LinkedListクラスに属し、リンクリストのデータ構造を操作する基本的なメソッドの一つです。

メソッド宣言

public E getFirst()

戻り値

リンクリストの最初の要素(先頭要素)を返します。


メソッドの詳細

機能説明

getFirst()メソッドは、リンクリストの最初の要素(先頭要素)を取得しますが、削除しません。このメソッドはpeekFirst()メソッドと同じ機能ですが、リンクリストが空の場合の動作が異なります。

時間計算量

O(1) - LinkedList は内部で先頭ノードへの参照を保持しているため、直接アクセスできます。

使用例

基本的な使い方

例

import java.util.LinkedList;

public class LinkedListExample {
    public static void main(String[] args) {
        // LinkedList を作成
        LinkedList<String> fruits = new LinkedList<>();
       
        // 要素を追加
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");
       
        // getFirst() を使用して最初の要素を取得
        String firstFruit = fruits.getFirst();
        System.out.println("最初の果物は: " + firstFruit);  // 出力: 最初の果物は: Apple
    }
}

類似メソッドとの比較

例

LinkedList<Integer> numbers = new LinkedList<>();
numbers.add(10);
numbers.add(20);

// getFirst() と peekFirst() は、空でないリンクリストでは同じ動作をします
System.out.println(numbers.getFirst());  // 出力: 10
System.out.println(numbers.peekFirst()); // 出力: 10

// ただし、リンクリストが空の場合の動作は異なります
numbers.clear();

// System.out.println(numbers.getFirst()); // NoSuchElementException をスロー
System.out.println(numbers.peekFirst());    // 出力: null

注意点

例外処理

リンクリストが空の場合に呼び出すと、getFirst()メソッドは例外をスローします。NoSuchElementException。したがって、使用前にリンクリストが空でないか確認することをお勧めします:

例

if (!myList.isEmpty()) {
    E element = myList.getFirst();
    // 要素を処理
} else {
    System.out.println("リンクリストは空です");
}

代替メソッド

リンクリストが空の場合に戻り値を返したい場合は、null例外をスローする代わりに、次のpeekFirst()メソッド:

例

E element = myList.peekFirst();  // リンクリストが空の場合は null を返す

実際の応用シーン

シーン 1:キューの処理

例

LinkedList<Order> orderQueue = new LinkedList<>();
// 注文を追加...

// キュー内の最初の注文を取得して処理する
if (!orderQueue.isEmpty()) {
    Order firstOrder = orderQueue.getFirst();
    processOrder(firstOrder);
}

シーン 2:スタック操作の実装

LinkedList は通常キューとして使用されますが、スタック(後入れ先出し)を実装するためにも使用できます:

例

LinkedList<String> stack = new LinkedList<>();
stack.push("First");  // addFirst() と同等
stack.push("Second");
stack.push("Third");

// スタックの先頭要素を削除せずに取得する
String top = stack.getFirst();  // "Third" を返す

まとめ

getFirst()メソッドはLinkedListクラス内のシンプルで実用的なメソッドで、リンクリストの最初の要素にすばやくアクセスできます。それとのpeekFirst()違いを覚えておいてください。実際のニーズに応じてどちらのメソッドを使用するかを選択してください。空になる可能性がある場合は、使用前に空チェックを行うか、次のメソッドの使用を検討してください。peekFirst()使用することで、実行時例外を回避できます。

Java LinkedList Java LinkedList

その他の拡張