Можно ли создать поток и фильтр в Java 7 - PullRequest
0 голосов
/ 16 января 2019

У меня есть список

List<Person> persons =
    Arrays.asList(
        new Person("Max", 4),
        new Person("Peter", 2),
        new Person("Pamela", 3),
        new Person("David", 9));

Я бы хотел создать Stream и отфильтровать список по полю, как в java 8:

persons
    .stream()
    .filter(p -> p.age >= 18)

1 Ответ

0 голосов
/ 16 января 2019

Создать Stream невозможно, но вы все равно можете использовать фильтр Guava ( Collections2.filter () или Iterables.filter () в зависимости от того, что вы будете делать с результат) в сочетании с предикатом Гуавы

Predicate<Person> predicate = new Predicate<Person>() {
        @Override
        public boolean apply(Person person) {
            return person.age >= 18;
        }
    };
Collection<Person> result = Collections2.filter(persons, predicate);

Если вам нужна дополнительная информация о фильтре и преобразовании Guava, я получил свой источник здесь: https://www.baeldung.com/guava-filter-and-transform-a-collection

...