Skip to content

Commit d441b3c

Browse files
committed
add filter util
1 parent 14719a4 commit d441b3c

1 file changed

Lines changed: 72 additions & 0 deletions

File tree

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package it.aboutbits.springboot.toolbox.util;
2+
3+
import lombok.NonNull;
4+
import org.springframework.data.util.Streamable;
5+
6+
import java.util.Collection;
7+
import java.util.List;
8+
import java.util.Set;
9+
import java.util.function.Predicate;
10+
import java.util.stream.Collectors;
11+
import java.util.stream.Stream;
12+
13+
/**
14+
* This is a collection of tools to simply filter items to a new collection or stream.
15+
* <p>
16+
* The returned collections are unmodifiable.
17+
*/
18+
public final class FilterUtil {
19+
private FilterUtil() {
20+
}
21+
22+
public static <T> Set<T> filterToSet(@NonNull Collection<T> items, @NonNull Predicate<T> filter) {
23+
return items.stream()
24+
.filter(filter)
25+
.collect(Collectors.toUnmodifiableSet());
26+
}
27+
28+
public static <T> Set<T> filterToSet(@NonNull Streamable<T> items, @NonNull Predicate<T> filter) {
29+
return items.stream()
30+
.filter(filter)
31+
.collect(Collectors.toUnmodifiableSet());
32+
}
33+
34+
public static <T> Set<T> filterToSet(@NonNull Stream<T> items, @NonNull Predicate<T> filter) {
35+
return items
36+
.filter(filter)
37+
.collect(Collectors.toUnmodifiableSet());
38+
}
39+
40+
public static <T> List<T> filterToList(@NonNull Collection<T> items, @NonNull Predicate<T> filter) {
41+
return items.stream()
42+
.filter(filter)
43+
.toList();
44+
}
45+
46+
public static <T> List<T> filterToList(@NonNull Streamable<T> items, @NonNull Predicate<T> filter) {
47+
return items.stream()
48+
.filter(filter)
49+
.toList();
50+
}
51+
52+
public static <T> List<T> filterToList(@NonNull Stream<T> items, @NonNull Predicate<T> filter) {
53+
return items
54+
.filter(filter)
55+
.toList();
56+
}
57+
58+
public static <T> Stream<T> filterToStream(@NonNull Collection<T> items, @NonNull Predicate<T> filter) {
59+
return items.stream()
60+
.filter(filter);
61+
}
62+
63+
public static <T> Stream<T> filterToStream(@NonNull Streamable<T> items, @NonNull Predicate<T> filter) {
64+
return items.stream()
65+
.filter(filter);
66+
}
67+
68+
public static <T> Stream<T> filterToStream(@NonNull Stream<T> items, @NonNull Predicate<T> filter) {
69+
return items
70+
.filter(filter);
71+
}
72+
}

0 commit comments

Comments
 (0)