我在某个地方遇到了nCopies
代码并且不熟悉此功能,我抬起头来Oracle Docs,发现定义中说:
返回一个不可变的列表,该列表由指定对象的n个副本组成。
不可变在这里是什么意思?我认为不可变意味着它不能被修改。但是,我注意到我可以对其进行修改。另外,我还可以为其分配其他列表。
这是我编写的用于检查行为的示例代码。
public static void main(String[] args){
List<Integer> list = new ArrayList<>(Collections.nCopies(5,0));
List<Integer> list2 = new ArrayList<>();
list2.add(2);list2.add(3);
for(int i=0;i<list.size();i++){
int prod = i*2;
list.set(i, prod); // list is modifiable
}
print(list);
list = list2; // list is assignable
print(list);
}
此API的用例是什么?
答案 0 :(得分:1)
尝试Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed viverra ligula vitae eros ultrices luctus.
<input type="button" value="Button one"> Vivamus ut felis massa. Cras a urna egestas, vehicula diam eu, accumsan lectus. Sed feugiat, odio quis cursus venenatis, felis dolor ultricies arcu, sit amet convallis eros nisi vel neque. <input type="button" value="Second button"> Cras facilisis in diam vel eleifend. Duis at tincidunt dui. Aliquam egestas at metus in malesuada. Nulla tincidunt lorem vel cursus porttitor. Phasellus gravida eleifend nulla.
-您的版本将不可变的集合传递给ArrayList(Collection<? extends E> c)
构造函数,然后将其复制。副本是可变的。