Как перебрать значения Enum, используя API Java 8 Stream - PullRequest
1 голос
/ 09 мая 2019

Как получить только cspId в один список целых чисел, используя Java stream API.Здесь, в примере ниже, вручную добавляются перечисления в список, обычно я получаю из места вызова метода.

 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 of Board

    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 ]

8 голосов
/ 09 мая 2019

Преобразовать массив enum в поток

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

для вашего примера будет:

List<Integer> list= Stream.of(Board.values()).map(Board::getId).collect(Collectors.toList());
6 голосов
/ 09 мая 2019

Затем используйте Stream API:

List<Integer> list = numbers.stream().map(Board::getId).collect(toList());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...