JavaでLinkedListの要素にアクセスする方法を解説
本記事では、LinkedList(連結リスト)から要素にアクセスする方法について詳しく解説します。
java.util.LinkedListクラスは、双方向連結リスト(doubly-linked list)として期待される操作を提供します。インデックスを指定してリストにアクセスする場合、指定されたインデックスにより近い側(先頭または末尾)から自動的にリストを走査するため、効率的なアクセスが可能です。
実行結果のイメージ
今回扱う入力と出力は以下の通りです。
入力:
入力リスト: [Python, Java, Scala, Java, JavaScript]
出力:
インデックス3の要素は: Java
アルゴリズム
ステップ1 - 処理を開始する ステップ2 - input_listという名前のLinkedListを宣言する ステップ3 - リストに値を追加する ステップ4 - 組み込みメソッド get() にインデックス値を渡すことで、リスト内の任意の要素にアクセスできる ステップ5 - 結果を表示する ステップ6 - 処理を終了する
例1:mainメソッド内にすべて記述する方法
まずは、すべての処理を「main」メソッド内にまとめて記述するシンプルな例です。
import java.util.LinkedList;
public class Demo {
public static void main(String[] args) {
LinkedList<String> input_list = new LinkedList<>();
input_list.add("Python");
input_list.add("Java");
input_list.add("Scala");
input_list.add("Java");
input_list.add("JavaScript");
System.out.println("定義されたリスト: " + input_list);
String result_string = input_list.get(3);
System.out.print("インデックス3の要素は: " + result_string);
}
}出力
定義されたリスト: [Python, Java, Scala, Java, JavaScript] インデックス3の要素は: Java
例2:オブジェクト指向スタイルで関数化する方法
次に、オブジェクト指向プログラミングの考え方に沿って、要素取得の処理を独立したメソッドにカプセル化した例を紹介します。コードの再利用性が高まり、より実践的な書き方となります。
import java.util.LinkedList;
public class Demo {
static void get_element(LinkedList<String> input_list, int index){
String result_string = input_list.get(index);
System.out.print("インデックス" + index + "の要素は: " + result_string);
}
public static void main(String[] args) {
LinkedList<String> input_list = new LinkedList<>();
input_list.add("Python");
input_list.add("Java");
input_list.add("Scala");
input_list.add("Java");
input_list.add("JavaScript");
System.out.println("定義されたリスト: " + input_list);
int index = 3;
get_element(input_list, index);
}
}出力
定義されたリスト: [Python, Java, Scala, Java, JavaScript] インデックス3の要素は: Java
まとめ
LinkedListの要素へのアクセスには、get()メソッドを使用します。引数にインデックス番号を渡すだけで、該当位置の要素を簡単に取得できます。LinkedListは内部的に双方向連結リスト構造を持つため、先頭と末尾のどちらか近い側から走査が行われる点も覚えておくとよいでしょう。
-
Javaで配列の要素を辞書式順序(辞書順)にソートする方法
この記事では、Javaで配列の要素を辞書式順序(レキシコグラフィカル順)にソートする方法について解説します。辞書式順序とは、国語辞典などで使われるアルファベット順・五十音順の考え方を、文字列やシーケンス全般に一般化したものです。まず、今回作成するプログラムの入力と出力のイメージを確認しておきましょう。入出力の例入力今回は次のような文字列配列を扱います。Alpha Beta Gamma Delta出力辞書式順序にソートすると、次のようになります。Alpha Beta Delta Gammaアルゴリズムソートの流れは以下の通りです。処理を開始する整数型変数 i、j、array_length を宣言
-
Javaでリストから重複要素を削除する2つの方法|LinkedHashSetとStream APIのdistinct()
JavaのList(リスト)から重複する要素を削除したい場面は少なくありません。本記事では、代表的な2つの手法――LinkedHashSetを利用する方法と、Stream APIのdistinct()メソッドを利用する方法――を、サンプルコードと実行結果つきでわかりやすく解説します。 方法1: LinkedHashSetを使って重複を削除する LinkedHashSetは、「重複した要素を許さない」かつ「挿入された順序を保持する」という特徴を持つコレクションです。そのため、ListをLinkedHashSetに変換するだけで、元の並び順を保ったまま重複要素を簡単に取り除くことができます。 サン