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

标签 java list java-8

我找到了 Collections.nCopies 但它返回 ImmutableList 所以我不能使用 add()

最易读的方法是什么?

最佳答案

将不可变的 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:

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

关于java - 如何使用 N - 1 个相等对象 + 1 个不同对象创建 List<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49509526/

相关文章:

java - Android JavaMail IMAP 10 秒后超时

json - 使用Gson从JSON字符串转换为数据类对象列表?

java - Java ThreadPoolExecutor [提交的内容超过MaxPoolSize]

java - jdk上没有idea注释

java - if else 语句

java - 如何将枚举值传递给构造函数

java - EclipseLink 中的一对一关系

javascript - jQuery 包装由 Div 中的 .Each 方法创建的元素

python - 在 python 中,len(list) 是做什么的?

java - 从 map 中过滤某些项目 - Java 8 Stream API