/
SlicingUsage.java
31 lines (26 loc) · 969 Bytes
/
SlicingUsage.java
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
package stream.intermediate_operations.slicing;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public class SlicingUsage {
public List<Song> getSongsWithTakeWhile(List<Song> songs, Predicate<Song> predicate) {
return songs.stream()
.takeWhile(predicate)
.collect(Collectors.toList());
}
public List<Song> getSongsWithDropWhile(List<Song> songs, Predicate<Song> predicate) {
return songs.stream()
.dropWhile(predicate)
.collect(Collectors.toList());
}
public List<Song> getSongsWithLimit(List<Song> songs, int size) {
return songs.stream()
.limit(size)
.collect(Collectors.toList());
}
public List<Song> getSongsWithSkip(List<Song> songs, int offset) {
return songs.stream()
.skip(offset)
.collect(Collectors.toList());
}
}