开发者社区> 问答> 正文

Java中这个Python列表的等价性是什么样的?

一码平川MACHEL 2019-01-22 11:50:10 507

我正在尝试学习Java,更具体地说,我正在尝试学习使用数组和列表时的一些差异。现在我正试图了解如何list += [i]*i 在Java中实现这一行。

Sum = 5000
list = [0, 0]
x = 1
while len(list) < Sum:

list += [x]*x
x += 1

我尝试了很多不同的方法,但我似乎无法找到方法。我用Java尝试的方法得到的结果都是错误的。

Java Python
分享到
取消 提交回答
全部回答(3)
  • justinjiang
    2019-07-17 23:26:14

    填充容器
    Collections.nCopies()和Collection.fill()都可以用单个对象的引用来填充Collection,并且所有引用都被设置为指向相同的的对象。
    fill()方法的用处更为有限,它只能替换已经在List中存在的元素,而不能添加新的元素。

    0 0
  • auhat
    2019-07-17 23:26:14

    楼上回答的很好

    0 0
  • 一码平川MACHEL
    2019-07-17 23:26:14

    直接翻译(使用有用的实用程序功能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;

    }

    0 0
添加回答

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题