@@ -29,6 +29,22 @@ public static <T1, T2> JoinType<T1, T2> fullOuterJoin(Stream<T1> left, Stream<T2
29
29
return new JoinType <>(left , right , t -> !(t .getT1 () == null && t .getT2 () == null ));
30
30
}
31
31
32
+ public static <T1 , T2 > JoinType <T1 , T2 > innerJoin (Collection <T1 > left , Collection <T2 > right ) {
33
+ return innerJoin (left .stream (), right .stream ());
34
+ }
35
+
36
+ public static <T1 , T2 > JoinType <T1 , T2 > leftOuterJoin (Collection <T1 > left , Collection <T2 > right ) {
37
+ return leftOuterJoin (left .stream (), right .stream ());
38
+ }
39
+
40
+ public static <T1 , T2 > JoinType <T1 , T2 > rightOuterJoin (Collection <T1 > left , Collection <T2 > right ) {
41
+ return rightOuterJoin (left .stream (), right .stream ());
42
+ }
43
+
44
+ public static <T1 , T2 > JoinType <T1 , T2 > fullOuterJoin (Collection <T1 > left , Collection <T2 > right ) {
45
+ return fullOuterJoin (left .stream (), right .stream ());
46
+ }
47
+
32
48
public static class JoinStream <T1 , T2 > {
33
49
34
50
private final Stream <Tuple2 <T1 , T2 >> left ;
@@ -49,17 +65,33 @@ public <T3> JoinType<Tuple2<T1, T2>, T3> innerJoin(Stream<T3> right) {
49
65
return Join .innerJoin (left , right );
50
66
}
51
67
68
+ public <T3 > JoinType <Tuple2 <T1 , T2 >, T3 > innerJoin (Collection <T3 > right ) {
69
+ return Join .innerJoin (left , right .stream ());
70
+ }
71
+
52
72
public <T3 > JoinType <Tuple2 <T1 , T2 >, T3 > leftOuterJoin (Stream <T3 > right ) {
53
73
return Join .leftOuterJoin (left , right );
54
74
}
55
75
76
+ public <T3 > JoinType <Tuple2 <T1 , T2 >, T3 > leftOuterJoin (Collection <T3 > right ) {
77
+ return Join .leftOuterJoin (left , right .stream ());
78
+ }
79
+
56
80
public <T3 > JoinType <Tuple2 <T1 , T2 >, T3 > rightOuterJoin (Stream <T3 > right ) {
57
81
return Join .rightOuterJoin (left , right );
58
82
}
59
83
84
+ public <T3 > JoinType <Tuple2 <T1 , T2 >, T3 > rightOuterJoin (Collection <T3 > right ) {
85
+ return Join .rightOuterJoin (left , right .stream ());
86
+ }
87
+
60
88
public <T3 > JoinType <Tuple2 <T1 , T2 >, T3 > fullOuterJoin (Stream <T3 > right ) {
61
89
return Join .fullOuterJoin (left , right );
62
90
}
91
+
92
+ public <T3 > JoinType <Tuple2 <T1 , T2 >, T3 > fullOuterJoin (Collection <T3 > right ) {
93
+ return Join .fullOuterJoin (left , right .stream ());
94
+ }
63
95
}
64
96
65
97
public static class JoinType <T1 , T2 > {
@@ -144,8 +176,6 @@ private <T> Collector<T, List<T>, List<T>> toListOrNullList() {
144
176
}
145
177
);
146
178
}
147
-
148
-
149
179
}
150
180
151
181
}
0 commit comments