Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
schbrain-parent
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
panwangnan
schbrain-parent
Commits
e8474581
Commit
e8474581
authored
Jul 18, 2023
by
liaozan
🏀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add more util methods
parent
d4661932
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
9 deletions
+17
-9
commons/common-util/src/main/java/com/schbrain/common/util/StreamUtils.java
...l/src/main/java/com/schbrain/common/util/StreamUtils.java
+17
-9
No files found.
commons/common-util/src/main/java/com/schbrain/common/util/StreamUtils.java
View file @
e8474581
...
@@ -26,15 +26,23 @@ import static java.util.stream.Collectors.mapping;
...
@@ -26,15 +26,23 @@ import static java.util.stream.Collectors.mapping;
public
class
StreamUtils
{
public
class
StreamUtils
{
public
static
<
T
>
List
<
T
>
filterToList
(
Iterable
<
T
>
data
,
Predicate
<
T
>
predicate
)
{
public
static
<
T
>
List
<
T
>
filterToList
(
Iterable
<
T
>
data
,
Predicate
<
T
>
predicate
)
{
return
filter
(
data
,
predicate
,
Collectors
.
toList
());
return
filterToList
(
data
,
predicate
,
Function
.
identity
());
}
public
static
<
T
,
V
>
List
<
V
>
filterToList
(
Iterable
<
T
>
data
,
Predicate
<
T
>
predicate
,
Function
<
T
,
V
>
mapper
)
{
return
filter
(
data
,
predicate
,
mapper
,
Collectors
.
toList
());
}
}
public
static
<
T
>
Set
<
T
>
filterToSet
(
Iterable
<
T
>
data
,
Predicate
<
T
>
predicate
)
{
public
static
<
T
>
Set
<
T
>
filterToSet
(
Iterable
<
T
>
data
,
Predicate
<
T
>
predicate
)
{
return
filter
(
data
,
predicate
,
Collectors
.
toSet
());
return
filterToSet
(
data
,
predicate
,
Function
.
identity
());
}
public
static
<
T
,
V
>
Set
<
V
>
filterToSet
(
Iterable
<
T
>
data
,
Predicate
<
T
>
predicate
,
Function
<
T
,
V
>
mapper
)
{
return
filter
(
data
,
predicate
,
mapper
,
Collectors
.
toSet
());
}
}
public
static
<
T
,
C
extends
Iterable
<
T
>>
C
filter
(
Iterable
<
T
>
data
,
Predicate
<
T
>
predicate
,
Collector
<
T
,
?,
C
>
collector
)
{
public
static
<
T
,
E
,
V
extends
Iterable
<
E
>>
V
filter
(
Iterable
<
T
>
data
,
Predicate
<
T
>
predicate
,
Function
<
T
,
E
>
mapper
,
Collector
<
E
,
?,
V
>
collector
)
{
return
from
(
data
).
filter
(
predicate
).
collect
(
collector
);
return
from
(
data
).
filter
(
predicate
).
map
(
mapper
).
collect
(
collector
);
}
}
public
static
<
T
,
E
>
List
<
E
>
toList
(
Iterable
<
T
>
data
,
Function
<
T
,
E
>
mapper
)
{
public
static
<
T
,
E
>
List
<
E
>
toList
(
Iterable
<
T
>
data
,
Function
<
T
,
E
>
mapper
)
{
...
@@ -76,11 +84,11 @@ public class StreamUtils {
...
@@ -76,11 +84,11 @@ public class StreamUtils {
return
stream
.
collect
(
collector
);
return
stream
.
collect
(
collector
);
}
}
public
static
<
K
,
T
>
Map
<
K
,
T
>
toMap
(
Iterable
<
T
>
data
,
Function
<
T
,
K
>
keyMapper
)
{
public
static
<
K
,
V
>
Map
<
K
,
V
>
toMap
(
Iterable
<
V
>
data
,
Function
<
V
,
K
>
keyMapper
)
{
return
toMap
(
data
,
keyMapper
,
false
);
return
toMap
(
data
,
keyMapper
,
false
);
}
}
public
static
<
K
,
T
>
Map
<
K
,
T
>
toMap
(
Iterable
<
T
>
data
,
Function
<
T
,
K
>
keyMapper
,
boolean
ordered
)
{
public
static
<
K
,
V
>
Map
<
K
,
V
>
toMap
(
Iterable
<
V
>
data
,
Function
<
V
,
K
>
keyMapper
,
boolean
ordered
)
{
return
toMap
(
data
,
keyMapper
,
Function
.
identity
(),
ordered
);
return
toMap
(
data
,
keyMapper
,
Function
.
identity
(),
ordered
);
}
}
...
@@ -100,7 +108,7 @@ public class StreamUtils {
...
@@ -100,7 +108,7 @@ public class StreamUtils {
return
from
(
data
).
collect
(
Collectors
.
toMap
(
keyMapper
,
valueMapper
,
(
oldValue
,
newValue
)
->
oldValue
,
mapFactory
));
return
from
(
data
).
collect
(
Collectors
.
toMap
(
keyMapper
,
valueMapper
,
(
oldValue
,
newValue
)
->
oldValue
,
mapFactory
));
}
}
public
static
<
K
,
T
>
Map
<
K
,
List
<
T
>>
groupBy
(
Iterable
<
T
>
data
,
Function
<
T
,
K
>
mapper
)
{
public
static
<
K
,
V
>
Map
<
K
,
List
<
V
>>
groupBy
(
Iterable
<
V
>
data
,
Function
<
V
,
K
>
mapper
)
{
return
groupBy
(
data
,
mapper
,
false
);
return
groupBy
(
data
,
mapper
,
false
);
}
}
...
@@ -128,11 +136,11 @@ public class StreamUtils {
...
@@ -128,11 +136,11 @@ public class StreamUtils {
return
groupBy
(
data
,
keyMapper
,
valueMapper
,
collector
,
false
);
return
groupBy
(
data
,
keyMapper
,
valueMapper
,
collector
,
false
);
}
}
public
static
<
K
,
T
,
V
,
C
>
Map
<
K
,
C
>
groupBy
(
Iterable
<
T
>
data
,
Function
<
T
,
K
>
keyMapper
,
Function
<
T
,
V
>
valueMapper
,
Collector
<
V
,
?,
C
>
collector
,
boolean
discardNullKey
)
{
public
static
<
K
,
T
,
V
,
E
>
Map
<
K
,
E
>
groupBy
(
Iterable
<
T
>
data
,
Function
<
T
,
K
>
keyMapper
,
Function
<
T
,
V
>
valueMapper
,
Collector
<
V
,
?,
E
>
collector
,
boolean
discardNullKey
)
{
return
groupBy
(
data
,
keyMapper
,
valueMapper
,
collector
,
discardNullKey
,
HashMap:
:
new
);
return
groupBy
(
data
,
keyMapper
,
valueMapper
,
collector
,
discardNullKey
,
HashMap:
:
new
);
}
}
public
static
<
K
,
T
,
V
,
C
>
Map
<
K
,
C
>
groupBy
(
Iterable
<
T
>
data
,
Function
<
T
,
K
>
keyMapper
,
Function
<
T
,
V
>
valueMapper
,
Collector
<
V
,
?,
C
>
collector
,
boolean
discardNullKey
,
Supplier
<
Map
<
K
,
C
>>
mapSupplier
)
{
public
static
<
K
,
T
,
V
,
E
>
Map
<
K
,
E
>
groupBy
(
Iterable
<
T
>
data
,
Function
<
T
,
K
>
keyMapper
,
Function
<
T
,
V
>
valueMapper
,
Collector
<
V
,
?,
E
>
collector
,
boolean
discardNullKey
,
Supplier
<
Map
<
K
,
E
>>
mapSupplier
)
{
Stream
<
T
>
stream
=
from
(
data
);
Stream
<
T
>
stream
=
from
(
data
);
if
(
discardNullKey
)
{
if
(
discardNullKey
)
{
stream
=
stream
.
filter
(
item
->
null
!=
keyMapper
.
apply
(
item
));
stream
=
stream
.
filter
(
item
->
null
!=
keyMapper
.
apply
(
item
));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment