「Java8」StreamクラスのflatMapメソッドを使うサンプル

2020年10月16日

説明
<R> Stream<R> flatMap(Function<? super T,? extends Stream<? extends R>> mapper)
このストリームの各要素をマップされたストリーム(指定されたマッピング関数を各要素に適用することで得られる)の内容で置き換えた結果から成るストリームを返します。
Javaコード

package com.arkgame.study;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class StreamSortDemo {

      private static final List<String> lstA = Arrays.asList("kv_1", "kv_02", "kv_33", "kv_456", "kv_1234");
      private static final List<String> lstB = Arrays.asList("User#011", "User#022", "User#033", "User#044");

      public static void main(String[] args) {

            // Stream<Object>
            Stream<Object> stA = lstA.stream().flatMap(tt -> Stream.of(tt, tt.length()));
            System.out.println("ListA_flatMap()函数:\n" + stA.collect(Collectors.toList()));
            System.out.println("");
            // Stream<Object>
            Stream<Object> stB = lstB.stream().flatMap(tt -> Stream.of(tt, tt.charAt(4)));
            System.out.println("ListB_flatMap()函数:\n" + stB.collect(Collectors.toList()));

      }

}

実行結果
ListA_flatMap()函数:
[kv_1, 4, kv_02, 5, kv_33, 5, kv_456, 6, kv_1234, 7]

ListB_flatMap()函数:
[User#011, #, User#022, #, User#033, #, User#044, #]

Java

Posted by arkgame