LinkedListさんってどんな人?

LinkedListさんってどんな人?

LinkedListさんは「ひもでつながれたお友達リスト」をイメージしてみて。 例えば:

  • 「リンゴさん」と「バナナさん」と「オレンジさん」が、お友達として手をつないでいる。

  • 手をつないでるから、新しいお友達(例えば「ぶどうさん」)をどこかの間に追加するのが簡単。

 

何が特別?

普通の配列(荒井さん)は、みんながぎゅうぎゅうに整列しているから、新しい人を追加するときは場所を作るために、全員ずらさないといけない。これが時間かかるよね。

でもLinkedListさんは、手をつないだ状態だから:

  1. 途中に新しい人を入れるとき、手をつなぎ直すだけでOK!

    • 例えば、「リンゴさん」と「バナナさん」の間に「ぶどうさん」を入れるなら、「リンゴさん→ぶどうさん→バナナさん」と手をつなぎ直すだけ。

 

どんな場面で使う?

LinkedListさんが活躍するのはこんな場面:

  • お友達リストの途中に新しい人を追加したいとき

  • 途中の人を削除するとき(手をつなぎ直すだけでサッと削除できる)。

 

でも…ちょっと不器用なところも

LinkedListさんは手をつないでいるから、誰かを探すときに「ひもをたどって順番に見ていく」必要があるんだ。「オレンジさんどこ?」って聞くと、「リンゴさん」「バナナさん」「あ、オレンジさんだ!」みたいに時間がかかることもある。

 

私の意見

手でつないでるんだったら、すぐに仲間に入れて上げれるね!
その際さ、入れる順番を指定することはできるの?89番目のブドウさんとトマトさんの間に入れたいとか
 

その通りだよ!LinkedListさんは手でつながれているお友達同士だから、「新しい仲間」をすぐに輪に入れてあげられるのが強みなんだ。例えば、「リンゴさんとバナナさん」の間に「ぶどうさん」が仲間入りしたいなら、手をつなぎ直すだけで仲間入りが完了!柔軟性抜群だよね。

ただ、一つ気をつけないといけないのは、「手をつないだ輪の中で誰かを探すとき」は、一人ひとりに聞きながら進んでいかなきゃいけないから、ちょっと時間がかかることもあるんだ。こういう特徴があるから、LinkedListさんは使う場面を選ばれるけど、仲間を増やしたり減らしたりする仕事があるときには大活躍するよ。

LinkedListさんのすごいところは、「入れる順番をちゃんと指定できる」ことなんだよ!たとえ「89番目のブドウさんとトマトさんの間に入りたい」というリクエストでも、LinkedListさんなら対応可能だよ。

 

順番を指定して要素を追加する方法

LinkedListさんの場合、「指定したインデックス(場所)」に新しい要素を追加する機能が用意されているんだ。コードではadd(index, element)というメソッドを使うよ!

コード例:89番目の間にブドウさんを追加

java
import java.util.LinkedList;

public class Example {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();

        // いくつかのデータを追加
        for (int i = 0; i < 100; i++) {
            list.add("データ" + (i + 1)); // "データ1", "データ2", ..., "データ100"
        }

        // 89番目の間に「ぶどう」を追加(インデックスは88)
        list.add(88, "ぶどう");

        // 追加結果を表示(90番目の前にぶどうがある)
        System.out.println(list.get(87)); // データ88
        System.out.println(list.get(88)); // ぶどう
        System.out.println(list.get(89)); // データ89
    }
}
 

動きの説明

  1. list.add(88, "ぶどう");

    • 「88番目の位置(インデックス)」を指定して、ぶどうさんを追加している。

    • インデックスは0から始まるので、「89番目」は実際にはインデックス88となる。

  2. 既存のデータをずらす

    • 新しい要素が指定された場所に入ると、後ろのデータが一つずつ押し出される感じ。

 

LinkedListさんの得意な場所

この方法は特に「途中にデータを追加したいとき」や「順番を細かく指定したいとき」に便利!ただし、こうした操作を頻繁に行うとLinkedListさんも忙しくなって遅くなる場合があるから、データの規模や操作の頻度に応じて適切な使い分けが重要だよ。