「Java8」ストリームAPIのdistinctメソッドで重複した要素を削除する

環境
JavaSE 1.8
Eclipse IDE 2019-12

関数
1.Stream<T> distinct()
このストリームの重複を除いた要素(Object.equals(Object)による)から構成されるストリームを返します。

2.public static <T> List<T> asList(T… a)
指定された配列に連動する固定サイズのリストを返します。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.arkgame.study;
import java.util.Arrays;
import java.util.List;
public class ArkgamelDemo {
// Integer配列変数の宣言
public static Integer cftArr[] = { 11, 22, 11, 44 };
// String型配列変数の宣言
public static String cityArr[] = { "tokyo", "oosaka", "tokyo", "kawasaki" };
public static void main(String[] args) {
// 数値
List<Integer> intLst = Arrays.asList(cftArr);
System.out.println("重複したInteger要素を削除する結果");
intLst.stream().distinct().forEach(System.out::println);
System.out.println("重複したString要素を削除する結果");
// 文字列
List<String> resLst = Arrays.asList(cityArr);
resLst.stream().distinct().forEach(System.out::println);
}
}
package com.arkgame.study; import java.util.Arrays; import java.util.List; public class ArkgamelDemo { // Integer配列変数の宣言 public static Integer cftArr[] = { 11, 22, 11, 44 }; // String型配列変数の宣言 public static String cityArr[] = { "tokyo", "oosaka", "tokyo", "kawasaki" }; public static void main(String[] args) { // 数値 List<Integer> intLst = Arrays.asList(cftArr); System.out.println("重複したInteger要素を削除する結果"); intLst.stream().distinct().forEach(System.out::println); System.out.println("重複したString要素を削除する結果"); // 文字列 List<String> resLst = Arrays.asList(cityArr); resLst.stream().distinct().forEach(System.out::println); } }
package com.arkgame.study;

import java.util.Arrays;
import java.util.List;

public class ArkgamelDemo {
      // Integer配列変数の宣言
      public static Integer cftArr[] = { 11, 22, 11, 44 };

      // String型配列変数の宣言
      public static String cityArr[] = { "tokyo", "oosaka", "tokyo", "kawasaki" };

      public static void main(String[] args) {
            // 数値
            List<Integer> intLst = Arrays.asList(cftArr);
            System.out.println("重複したInteger要素を削除する結果");
            intLst.stream().distinct().forEach(System.out::println);

            System.out.println("重複したString要素を削除する結果");
            // 文字列
            List<String> resLst = Arrays.asList(cityArr);
            resLst.stream().distinct().forEach(System.out::println);
      }

}

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
重複したInteger要素を削除する結果
11
22
44
重複したString要素を削除する結果
tokyo
oosaka
kawasaki
重複したInteger要素を削除する結果 11 22 44 重複したString要素を削除する結果 tokyo oosaka kawasaki
重複したInteger要素を削除する結果
11
22
44
重複したString要素を削除する結果
tokyo
oosaka
kawasaki

 

Java

Posted by arkgame