package Java8_in_Action; import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import lombok.Data; import java.util.ArrayList; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; public class StreamAPITest { public static void main(String[] args) { List
articles = new ArrayList<>(); articles.add(new Article("title1", "author1", Lists.newArrayList("tag1"))); articles.add(new Article("title2", "author2", Lists.newArrayList("tag1", "Java"))); articles.add(new Article("title3", "author3", Lists.newArrayList("tag1", "Java", "tag3"))); Optional
firstJavaArticle = getFirstJavaArticle(articles); System.out.println(firstJavaArticle.toString()); List
allJavaArticles = getAllJavaArticles(articles); System.out.println(allJavaArticles.toString()); } private static Optional
getFirstJavaArticle(List
articles) { return articles.stream() .filter(article -> article.getTags().contains("Java")) .findFirst(); } private static List
getAllJavaArticles(List
articles) { return articles.stream() .filter(article -> article.getTags().contains("Java")) .collect(Collectors.toList()); } @Data @AllArgsConstructor private static class Article { private final String title; private final String author; private final List tags; } }