我正在尝试学习Java,更具体地说,我正在尝试学习使用数组和列表时的一些差异。现在我正试图了解如何list += [i]*i 在Java中实现这一行。
Sum = 5000
list = [0, 0]
x = 1
while len(list) < Sum:
list += [x]*x
x += 1
我尝试了很多不同的方法,但我似乎无法找到方法。我用Java尝试的方法得到的结果都是错误的。
填充容器
Collections.nCopies()和Collection.fill()都可以用单个对象的引用来填充Collection,并且所有引用都被设置为指向相同的的对象。
fill()方法的用处更为有限,它只能替换已经在List中存在的元素,而不能添加新的元素。
直接翻译(使用有用的实用程序功能java.util.Collections.nCopies)它变成类似于:
import java.util.*;
int Sum = 5000; //Following the naming convention in Java (and Python) "Sum" should be lowercase
ArrayList list = new ArrayList();
//Alternatively: List list = new ArrayList();
list.add(0);
list.add(0);
int x = 1;
while (list.size() < Sum) {
list.addAll(Collections.nCopies(x, x));
x += 1;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。