【发布时间】:2019-08-03 16:33:26
【问题描述】:
我有两个容量为 20 和 10 的列表字符串。
int maxCapacity = 20;
List<String> k = new ArrayList<>(maxCapacity);
List<String> s = new ArrayList<>(10);
for (int i = 0; i < 10; i++) {
s.add(new String("X"));
}
s.stream().collect(Collectors.toCollection(() -> k));
我想将默认值添加到 K 中,索引从 10 -> 19,因为 S 的大小小于 K,所以只够从 0 -> 9 填充 K。
我可以通过添加一个循环来做到这一点,但看起来不太好:
for (int i = s.size(); i < maxCapacity; i++) {
k.add("default");
}
这样简单吗?例如使用流 java 8 等。 谢谢。
【问题讨论】:
-
所以为了澄清你想让 k 有 {0, 1, 2... 9, "default", "default"...}?
-
传递给
toCollection的供应商应在每次评估时创建一个新集合。根据定义,返回现有集合已损坏。除此之外,不要使用new String("X")。只需使用"X"。
标签: java arraylist collections java-8 java-stream