如何使用N-1个相等的对象+ 1个不同的对象创建List <t>?

时间:2018-03-27 09:44:36

标签: java list java-8

我找到Collections.nCopies但它返回ImmutableList,因此我无法使用add()

最可读的方式是什么?

1 个答案:

答案 0 :(得分:5)

将不可变的List传递给ArrayList构造函数:

List<YourClass> list = new ArrayList<>(Collections.nCopies (n-1, object1));
list.add(object2);

List<YourClass> list = new ArrayList<>(Collections.nCopies (n, object1));
list.set(someIndex, object2);

在Java 8中,您可以使用Stream s:

List<YourClass> list = 
    IntStream.range(0,n)
             .mapToObj(i -> i != specialIndex ? object1 : object2)
             .collect(Collectors.toList());