Skip to content

Commit a563e21

Browse files
author
huguiqi
committed
学习1
1 parent 4786c46 commit a563e21

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package lambdasinaction.chap1.learn;
2+
3+
import java.util.Arrays;
4+
import java.util.HashSet;
5+
import java.util.List;
6+
import java.util.Set;
7+
import java.util.function.Predicate;
8+
import java.util.stream.Collectors;
9+
10+
public class FilteringRepeatElemetes {
11+
12+
//将重复的数据取出来,有几种方法
13+
private static List elems = Arrays.asList("b","e","d","c","b","a","a","c","b","a");
14+
15+
public static void main(String ... args) {
16+
17+
long start = System.currentTimeMillis();
18+
List<String> repeatList = filterRepeat(elems,new PredicateRepeatElement<String>());
19+
System.out.println(repeatList.toString());
20+
System.out.println((System.currentTimeMillis() - start) + "ms");
21+
}
22+
23+
24+
public static List<String> filterRepeat(List<String> elems, Predicate<String> p){
25+
return elems.stream().filter(e-> p.test(e)).collect(Collectors.toList());
26+
}
27+
28+
private static class PredicateRepeatElement<T> implements Predicate<String> {
29+
private Set<String> hashSet = new HashSet<>();
30+
31+
32+
@Override
33+
public boolean test(String s) {
34+
if (hashSet.contains(s)){
35+
return true;
36+
}else {
37+
hashSet.add(s);
38+
return false;
39+
}
40+
}
41+
}
42+
}

0 commit comments

Comments
 (0)