Javaでリストをマスターする:結合・重複削除・ソート・比較・表示・コピー・最大値・リストのリストまで徹底ガイド!
Javaで扱われるデータ構造の中でも、リストはそのダイナミックな特性から多くのシーンで利用されています。
リストには様々な操作方法がありますが、本記事では『リストの結合』『重複の削除』『ソート(並び替え)』『リスト間の比較』『リストの表示』『リストのコピー』『最大値の検出』『リストのリスト』といった、よくGoogleで検索されるキーワードに対して、具体的なコード例と共に解説を行います。
前回のリストの記事はコチラ
こちらもCHECK
-
【Java】javaのリストの初期化、追加、リスト宣言、削除、取得、ループして、全ての要素の取得方法を徹底解説!
Javaにおけるリスト操作の究極ガイド!初期化から削除まで徹底解説! Javaでプログラミングを行う上で、リストは非常に頻繁に使われるデータ構造です。 特に「java リスト 初期化」や「java リ ...
続きを見る
リストの結合:2つのリストを1つにまとめる
初めに、Javaでリストを結合する方法について説明します。
リストを結合する基本的なアプローチとしては、addAll()メソッドを利用する方法があります。これを利用すると、一つのリストに他のリストの要素をすべて追加することができます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.util.ArrayList; import java.util.List; public class Program { public static void main(String[] args) { List<String> list1 = new ArrayList<>(); list1.add("Apple"); list1.add("Banana"); List<String> list2 = new ArrayList<>(); list2.add("Cherry"); list2.add("Date"); list1.addAll(list2); System.out.println(list1); } } |
出力結果
[Apple, Banana, Cherry, Date]
KindleUnlimited会員であれば、全ての本をご覧頂けます。 StreamAPIを理解すれば、Javaの世界が変わる 第1版
リストの重複削除:同じ要素を1つにまとめる
次に、リストから重複する要素を削除する方法について学びます。
Javaのリストから重複を削除する一般的な方法は、Stream APIを利用して、distinct()メソッドで重複した要素をフィルタリングする方法があります。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class Program { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("Apple"); list.add("Banana"); list.add("Apple"); list.add("Cherry"); List<String> uniqueList = list.stream().distinct().collect(Collectors.toList()); System.out.println(uniqueList); } } |
出力結果
[Apple, Banana, Cherry]
リストのソート:要素を順番に整える
Javaでリストをソートする方法はいくつかありますが、ここではCollectionsクラスのsort()メソッドを利用した基本的な方法を紹介します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Program { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("Banana"); list.add("Apple"); list.add("Cherry"); Collections.sort(list); System.out.println(list); } } |
出力結果
[Apple, Banana, Cherry]
実際に、リストの要素を降順(大きいものから小さいものへ)にソートするには、Collections.sort()メソッドにComparator.reverseOrder()をパラメータとして渡します。これにより、通常の昇順ではなく、降順で要素をソートできます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Program { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("Banana"); list.add("Apple"); list.add("Cherry"); Collections.sort(list, Comparator.reverseOrder()); System.out.println(list); } } |
出力結果
[Cherry, Banana, Apple]
リストの比較:2つのリストを比較する
Javaで2つのリストを比較する方法としては、equals()メソッドを使用するのが一般的です。これにより、2つのリストが等しいかどうかをチェックできます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.util.ArrayList; import java.util.List; public class Program { public static void main(String[] args) { List<String> list1 = new ArrayList<>(); list1.add("Apple"); list1.add("Banana"); List<String> list2 = new ArrayList<>(); list2.add("Apple"); list2.add("Banana"); boolean isEqual = list1.equals(list2); System.out.println("The lists are equal: " + isEqual); } } |
出力結果
The lists are equal: true
リストの表示:要素を画面に出力する
Javaでリストの要素を表示する一般的な方法は、for-eachループを使用する方法です。これにより、リストの各要素を順番に取得して操作を実行できます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.util.ArrayList; import java.util.List; public class Program { public static void main(String[] args) { List<String> fruits = new ArrayList<>(); fruits.add("Apple"); fruits.add("Banana"); fruits.add("Cherry"); for(String fruit : fruits) { System.out.println(fruit); } } } |
出力結果
Apple
Banana
Cherry
リストのコピー:リストを複製する
リストをコピーするには、新しいリストを作成し、元のリストの要素をその新しいリストにコピーします。これは、Collections.copy()メソッドを使用して実現できます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Program { public static void main(String[] args) { List<String> original = new ArrayList<>(); original.add("Apple"); original.add("Banana"); original.add("Cherry"); List<String> copy = new ArrayList<>(original.size()); copy.addAll(Collections.nCopies(original.size(), null)); Collections.copy(copy, original); System.out.println("Original: " + original); System.out.println("Copy: " + copy); } } |
出力結果
Original: [Apple, Banana, Cherry]
Copy: [Apple, Banana, Cherry]
リストの最大値:要素の中で最も大きい値を見つける
Javaでリストの中から最大値を見つける場合、Collections.max()メソッドを使います。これはリストの中で最も大きい要素を返してくれます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Program { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(); numbers.add(3); numbers.add(7); numbers.add(1); int maxValue = Collections.max(numbers); System.out.println("Maximum Value is: " + maxValue); } } |
出力結果
Maximum Value is: 7
リストの最小値:要素の中で最も小さい値を見つける
リストから最小値を取得するには、Collections.min()メソッドを利用します。このメソッドはリストの要素の中で最も小さいものを返します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Program { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(); numbers.add(3); numbers.add(7); numbers.add(1); int minValue = Collections.min(numbers); System.out.println("Minimum Value is: " + minValue); } } |
出力結果
Minimum Value is: 1
リストのリスト:2次元リストを使う
リストのリスト、つまり2次元リストもJavaで利用可能です。リスト内に別のリストを要素として持たせることで、表形式のデータを表現したり、行列計算を実装することができます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import java.util.ArrayList; import java.util.List; public class Program { public static void main(String[] args) { List<List<Integer>> matrix = new ArrayList<>(); List<Integer> row1 = new ArrayList<>(); row1.add(1); row1.add(2); row1.add(3); List<Integer> row2 = new ArrayList<>(); row2.add(4); row2.add(5); row2.add(6); matrix.add(row1); matrix.add(row2); System.out.println("Matrix: " + matrix); } } |
出力結果
Matrix: [[1, 2, 3], [4, 5, 6]]
まとめ
今回はjavaのリストについて色々な操作をみてきました。
開発においても、リストを使う場面が多いので、色々な操作を行えるようにしておきましょう。
今回の記事は以上です。最後まで読んで頂きありがとうございました。