是否可以在Java 7中创建流并进行过滤

时间:2019-01-16 10:25:11

标签: java java-7

我有一个列表

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 :(得分:3)

创建Stream是不可能的,但是您仍然可以使用Guava的过滤器(Collections2.filter()Iterables.filter(),具体取决于结果如何)与Guava的Predicate结合使用

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

如果您想了解有关番石榴过滤和变换的更多信息,我的资料来源是:https://www.baeldung.com/guava-filter-and-transform-a-collection