重复复制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());
    }
}

下一篇:从Java列表List中删除第N个元素