重复复制Java列表List中元素
如何重复复制一个列表中的每个元素?
import java.util.List;
import java.util.stream.Stream;
import static java.util.stream.Collectors.toList;
/**
* (*) Duplicate the elements of a list
* <pre>
* duplicate(Arrays.asList("a", "b", "c", "d"))
* </pre>
*/
public class P14 {
public static <T> List<T> duplicate(List<T> list) {
return list.stream().flatMap(e -> Stream.of(e, e)).collect(toList());
}
}
如何按指定次数复制一个列表中的每个元素?
import java.util.Collections;
import java.util.List;
import static java.util.stream.Collectors.toList;
/**
* (**) Duplicate the elements of a list a given number of times.
* <pre>
* duplicate(Arrays.asList("a", "b", "c", "d"))
* </pre>
*/
public class P15 {
public static <T> List<T> duplicate(final List<T> list, final int times) {
return list.stream().flatMap(e -> Collections.nCopies(times, e).stream()).collect(toList());
}
}