Фильтр Apache CollectionUtil содержит список слов перечисления - PullRequest
0 голосов
/ 04 декабря 2018

Я действительно новичок в Java.Я хотел бы сделать что-то для услуг REST.У меня есть список массивов объектов, содержащих данные, я хотел бы удалить все объекты, которые не соответствуют критериям на основе enum.Я получил образец с Apache CollectionUtils и фильтром.но все, что я нашел, связано с равным значением.

на данный момент, это код, который я сделал

    MyObjectFiltered.addAll(ListedMyObject);

    CollectionUtils.filter(MyObjectFiltered, new Predicate() {

        @Override
        public boolean evaluate(Object object) {
            boolean boolFound = false;

            for(String EnumItem : EnumAsList)
            {
                boolFound = ((MyObjectModel) object).getValue() == EnumItem ;
            }
            return boolFound;
        }
    });

Я знаю, что это не способ делать то, что я хочу, ноя не могу понять, как я могу это сделать.Ребята, у вас есть предложения, которые я могу найти, чтобы достичь своей цели?

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Если я вас правильно понимаю, вы просто хотите удалить из списка объекты, которые не соответствуют определенному Enum?Вам не понадобится внешняя библиотека для чего-то такого простого, лямбды Java 8 могут сделать это за вас.

Вам просто нужно что-то вроде MyObjectFiltered.removeIf(object -> !EnumAsList.contains(object.getValue());

По сути, это означает, что нужно удалить объект из моего списка, если список перечислений не содержит его.

0 голосов
/ 04 декабря 2018

Это то, для чего предназначен API потока Java.https://www.oracle.com/technetwork/articles/java/ma14-java-se-8-streams-2177646.html

var filteredList = MyObjectFiltered
    .stream()
    .filter(obj -> EnumList.contains(obj.getValue()))
    .collect(Collectors.toList());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...