-
Notifications
You must be signed in to change notification settings - Fork 0
/
P15.java
50 lines (45 loc) · 1.41 KB
/
P15.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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package lists;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* Duplicate the elements of a list a given number of times.
*/
public final class P15 {
private P15() {
}
/**
* Duplicate items in list.
*
* @param list input list of items.
* @param numberDuplicate number of item to duplicate.
* @param <T> type of item.
* @return duplicated list of items
*/
public static <T> List<T> duplicate(final List<T> list,
final Integer numberDuplicate) {
List<T> newTList = new ArrayList<>();
for (T act : list) {
for (int j = 0; j < numberDuplicate; j++) {
newTList.add(act);
}
}
return newTList;
}
/**
* Duplicate items in list.
*
* @param list input list of items
* @param numberDuplicate number of item to duplicate
* @param <T> type of item
* @return duplicated list of items
*/
public static <T> List<T> duplicateStream(final List<T> list,
final Integer numberDuplicate) {
return list.stream()
.flatMap(item -> Collections.nCopies(numberDuplicate, item)
.stream())
.collect(Collectors.toList());
}
}