Java LinkedList set() メソッド

Java LinkedList Java LinkedList


LinkedListは、Java コレクションフレームワークにおける重要なクラスであり、Listインターフェースを実装しています。set()set() メソッドは、LinkedListLinkedList クラスが提供する非常に便利なメソッドで、リンクリスト内の指定位置の要素を置き換えるために使用します。

簡単に言うと、set()このメソッドを使用すると、以下のことができます:

  1. インデックスを使用してリンクリスト内の特定の位置にアクセスする
  2. その位置の古い要素を新しい要素で置き換える
  3. 置き換えられた古い要素を返す

メソッドの構文

set()メソッドの完全な構文は次のとおりです:

public E set(int index, E element)

パラメータの説明:

  • index:置き換える要素の位置(0 から数えます)
  • element:指定された位置に格納する新しい要素

戻り値:

  • 置き換えられた古い要素を返します

使用例

完全なコード例を通して理解しましょうset()メソッドの使用方法:

例

import java.util.LinkedList;

public class LinkedListSetExample {
    public static void main(String[] args) {
        // LinkedList を作成する
        LinkedList<String> fruits = new LinkedList<>();
       
        // 要素を追加する
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");
        fruits.add("Date");
       
        System.out.println("元のリンクリスト: " + fruits);
       
        // set() メソッドを使用して2番目の要素を置き換える
        String replaced = fruits.set(1, "Blueberry");
       
        System.out.println("置き換えられた要素: " + replaced);
        System.out.println("変更後のリンクリスト: " + fruits);
    }
}

出力結果:

原始链表: [Apple, Banana, Cherry, Date]
被替换的元素: Banana
修改后的链表: [Apple, Blueberry, Cherry, Date]

注意事項

インデックス範囲外例外

指定されたインデックスがリンクリストの範囲外(index < 0 または index >= size())の場合、set()メソッドは例外をスローします。IndexOutOfBoundsException。

例

// これは例外をスローします。インデックス 4 は存在しないためです(リンクリストには4つの要素しかなく、インデックス範囲は0〜3です)
fruits.set(4, "Fig");

パフォーマンスに関する考慮事項

理由は、LinkedListLinkedList がリンクリストベースで実装されているからです。set()set() メソッドは、指定された位置の要素を見つけるためにリンクリストを走査する必要があります。したがって:

  • 平均時間計算量は O(n) です
  • 頻繁なランダムアクセスが必要なシナリオでは、ArrayListより良い選択かもしれません。

null 値は許可されません

もしLinkedListnull 要素を許可しない場合(実装によって異なります)、null 値を設定しようとすると例外がスローされる可能性があります。NullPointerException。


他のメソッドとの比較

set() vs add()

  • set():指定された位置の要素を置き換えます
  • add():指定された位置に新しい要素を挿入し、既存の要素は後ろに移動します

set() vs get()

  • set():指定された位置の要素を変更し、古い値を返します
  • get():指定された位置の要素を取得するだけで、リンクリストを変更しません

実際の適用シナリオ

set()set() メソッドは、以下のシナリオで特に役立ちます:

  1. リンクリスト内の特定の要素を更新する
  2. 元に戻す/やり直し機能を実装する際に履歴を置き換える
  3. アルゴリズムで中間ステップのデータを変更する
  4. ゲーム開発でオブジェクトの状態を更新する

まとめ

LinkedListのset()set() メソッドはシンプルですが強力なツールであり、開発者がリンクリスト内の特定の要素を正確に変更することを可能にします。このメソッドの動作原理と制限条件を理解することで、実際のプログラミングでより効果的にLinkedListLinkedList コレクションを使用できるようになります。

Java LinkedList Java LinkedList

その他の拡張