Java8でEnumをStreamに変換する方法

Java8でEnumをStreamに変換する方法

Enumのvaluesメソッドが配列を返すので、Arrays.streamメソッドを使用してstreamに変換することができます。

Arrays.stream(Week.values()).forEach(System.out::println);

Enumは以下です。

package jp.co.confrage;

import lombok.AllArgsConstructor;
import lombok.Getter;

@AllArgsConstructor
@Getter
public enum Week {
  Sunday("日"),
  Monday("月"),
  Tuesday("火"),
  Wednesday("水"),
  Tursday("木"),
  Friday("金"),
  Saturday("土");

  private String day;
}

EnumからMapに変換する

EnumからMapに変換します。

package jp.co.confrage;

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

public class EnumSample {
  public static void main(String[] args) {
  var ret =
  Arrays.stream(Week.values())
    .map(
      e -> {
        return e.name();
      })
    .collect(Collectors.toMap(k -> k, v -> v));

    System.out.println(ret); // {Monday=Monday, Tursday=Tursday, Friday=Friday, Sunday=Sunday, Wednesday=Wednesday, Tuesday=Tuesday, Saturday=Saturday}
  }
}

JavaのEnumをループする方法とabstractメソッドを定義する方法

コメント

タイトルとURLをコピーしました