Как применять if / else логику в потоковом API в java.? - PullRequest
0 голосов
/ 20 июня 2019

У меня есть список SortCriteria объектов.Объект содержит свойства sortColumn и sortAscending.Мне нужно перебрать список, если sortAscending равно true Мне нужно добавить "ASC", в противном случае мне нужно добавить "DESC"

Я попытался получить список восходящего потока и поток убывающего списка и слияния.

JSON:

"sort_criteria": [{

      "sortAscending": true,

      "sortColumn": "Category"

}]

ЛОГИКА JAVA:

List<SortCriteria> listOfSortCriteria=webQueryRequest.getSortCriteria();
            List<SortCriteria> listOfAscending=listOfSortCriteria.stream().filter(e->e.getSortAscending().equals("true")).collect(Collectors.toList());
            List<SortCriteria> listOfDescending=listOfSortCriteria.stream().filter(e->e.getSortAscending().equals("false")).collect(Collectors.toList());
            orderByQuery=ORDER_BY+listOfAscending.stream().map(e->e.getSortColumn()+ " "+"ASC").collect(Collectors.joining(","))+","+listOfDescending.stream().map(e->e.getSortColumn()+" "+"DESC").collect(Collectors.joining(","));

Вместо того, чтобы получать восходящий список потоков и поток нисходящих списков и слияния, которые я хочу сделать за один раз, нужно окончательнопостроенный результат.

1 Ответ

3 голосов
/ 20 июня 2019

независимо от исходного вопроса, порядок столбцов порядка значим.разделяя столбцы по возрастанию и убыванию, вы изменяете порядок столбцов порядка!
Итак, вам нужно выполнить потоковую передачу исходного списка и добавить столбцы - каждый со своим собственным направлением:

orderByQuery = ORDER_BY + 
  listOfSortCriteria.stream().map(e->e.getSortColumn() + " " + (e->e.getSortAscending().equals("true") ? "ASC":"DESC"))
    .collect(Collectors.joining(","));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...