如何使用Java 8 Stream API迭代Enum值

时间:2019-05-09 11:41:51

标签: java enums

如何使用Java流API仅将cspId转换为一个整数列表。在下面的示例中,手动添加枚举到列表中通常我将从方法调用处获得。

 public class Test {
        public static void main(String args[]){
            List<Board> numbers=new ArrayList<>();
            numbers.add(Board.MY_BOARD);
            numbers.add(Board.TEST_BOARD);
            List<Integer> list=new ArrayList<Integer>();//Here i want to get List<integer> using jaba stream api.
            System.out.println(list);               
            }
        }

董事会人数

    enum Board{
          MY_BOARD(0, "My Dashboard"),
          WEB_BOARD(1, "web Dashboard"),
          TEST_BOARD(2, "web Dashboard")
    ;    
          private int cspId;
          private String name;

          Board(int id, String name) {
            this.cspId = id;
            this.name = name;
          }
          public int getId() {
                return cspId;
              }
              public String getName() {
                return name;
              }           
    }

2 个答案:

答案 0 :(得分:8)

将枚举数组转换为流

Stream.of(Enum.values()).map....

您的示例为:

List<Integer> list= Stream.of(Board.values()).map(Board::getId).collect(Collectors.toList());

答案 1 :(得分:6)

然后使用Stream API:

List<Integer> list = numbers.stream().map(Board::getId).collect(toList());