开发者社区> 问答> 正文

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

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

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

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

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

展开
收起
一码平川MACHEL 2019-01-22 11:50:10 3212 0
3 条回答
写回答
取消 提交回答
  • 什么都感兴趣?

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

    2019-07-17 23:26:14
    赞同 展开评论 打赏
  • 楼上回答的很好

    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;

    }

    2019-07-17 23:26:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载