【问题标题】:Java: Initialize collection (list) of size n > 1 with the same elementsJava:使用相同的元素初始化大小为 n > 1 的集合(列表)
【发布时间】:2013-10-30 10:33:33
【问题描述】:

我希望在 Java 中有一个这样的单行:

List<A> list = initialize(element, n);

其中元素的类型为 A,n 是一个整数,表示希望的集合大小。

我最初的问题是在不复制元素的情况下使用相同的引用填充列表,但复制也是一个很好的折衷方案。

欢迎使用 Apache 或 Google 收集实用程序或类似工具。如果您认为这可以推广到列表以外的其他 java 集合,请添加您的 cmets。

到目前为止,这是我最好的解决方案(A 是布尔值):

Lists.newArrayList(Arrays.copyOf(new Boolean[ ] { false }, n))

我找到了一个类似的question(不是暂停或关闭),但它不适用于 java。

【问题讨论】:

  • 您希望列表中的所有引用都引用同一个对象还是不同的对象?
  • n 是否代表列表应包含的元素数量?我认为这就是它的用途,但问题中没有明确说明。
  • @Sotirios 我阅读了常见问题解答,我错过了什么?

标签: java collections initialization


【解决方案1】:

您正在寻找Collections.nCopies(int, T)

【讨论】:

  • +1 这是引用的 nCopies,而不是引用的对象。
猜你喜欢
  • 2021-07-04
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-24
  • 1970-01-01
  • 2020-09-03
相关资源
最近更新 更多