覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

Java - Streamの先頭に値を追加したい

Java の Stream(java.util.stream.Stream)で扱っているデータ群の先頭に別の値を追加したい場合
Stream.concat メソッドを使うのがよいと思います。


■ソースコードサンプル

["Dta1", "Data2", "Data3", "Data4"] というデータ群の先頭に "|| Title ||" という値を追加したい という例です。

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

public class StreamTrial1 {

    public static void main(String[] args) {
        List<String> dataList = Arrays.asList("Dta1", "Data2", "Data3", "Data4");

        Stream<String> dataStream = dataList.stream();
        Stream<String> headerStream = Stream.of("|| Title ||");

        // 2つのStreamを結合(headerStream の後ろに dataStream を結合)
        Stream<String> resultStream = Stream.concat(headerStream, dataStream);

        // Streamから配列に変換して中身を確認してみる
        String[] stringArray = resultStream.toArray(String[]::new);
        System.out.println(Arrays.toString(stringArray));
    }
}


■実行結果

[|| Title ||, Dta1, Data2, Data3, Data4]


というわけで、Streamの先頭に値を追加することができました。