-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMain.java
More file actions
108 lines (93 loc) · 2.69 KB
/
Copy pathMain.java
File metadata and controls
108 lines (93 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package stream;
import java.util.*;
import java.util.stream.Collectors;
/**
* main
*/
@SuppressWarnings("all")
public class Main {
public static List<Article> articles = new ArrayList<Article>();
Main() {
articles.add(new Article("文章1", "cheng", Arrays.asList("Buenos Aires", "Córdoba", "La Plata")));
articles.add(new Article("文章2", "hu", Arrays.asList("C#", "Java", "PHP")));
articles.add(new Article("文章3", "hucheng", Arrays.asList("JavaSE", "JavaEE", "Java")));
}
public static void main(String[] arg) {
//输出一次匹配
Main mains = new Main();
Optional<Article> article = mains.getFirstJavaArticleNew();
System.out.println(article.toString());
//输出所有匹配
List<Article> allJavaArticles = mains.getAllJavaArticlesNew();
//stream 输出list
allJavaArticles.stream().forEach(
javaArticles -> {
System.out.println(javaArticles.toString());
}
);
//获取所有子集tags输出
Set<String> tags = mains.getDistinctTags();
tags.stream().forEach(
s -> {
System.out.println(s);
}
);
}
/**
* 传统Java获取匹配输出
*
* @return
*/
public Article getFirstJavaArticle() {
for (Article article : articles) {
if (article.getTags().contains("Java")) {
return article;
}
}
return null;
}
/**
* Java8流式操作匹配输出
*
* @return
*/
public Optional<Article> getFirstJavaArticleNew() {
return articles.stream()
.filter(article -> article.getTags().contains("Java"))
.findFirst();
}
/**
* 传统输出所有的匹配
*
* @return
*/
public List<Article> getAllJavaArticles() {
List<Article> result = new ArrayList<>();
for (Article article : articles) {
if (article.getTags().contains("Java")) {
result.add(article);
}
}
return result;
}
/**
* stream 输出全部匹配
*
* @return
*/
public List<Article> getAllJavaArticlesNew() {
return articles.stream()
.filter(article -> article.getTags().contains("Java"))
.collect(Collectors.toList());
}
/**
* 获取一个包含子集的set集合
*
* @return
*/
public Set<String> getDistinctTags() {
return articles.stream()
.flatMap(article -> article.getTags().stream())
.collect(Collectors.toSet());
}
}