首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据列表的大小创建Java随机数

根据列表的大小创建Java随机数
EN

Stack Overflow用户
提问于 2013-02-08 20:20:15
回答 5查看 2.6K关注 0票数 0

我已经创建了一个随机化列表的方法:

代码语言:javascript
运行
复制
public <T> List<T> randomize(List<T> list) {
    LinkedList<T> randomizedList = new LinkedList<>();
    Random random = new Random(list.size());
    for (int i = random.nextInt(); i < list.size(); i++) {
        randomizedList.add(list.get(i));
    }
    return randomizedList;
}

我传递给这个方法的列表包含了例如五个元素。当我创建Random random = new Random(list.size());时,我希望当我调用random.nextInt()时,它会返回随机整数,这将是列表元素的索引。

但是,当我调用random.nextInt();而不是返回间隔[0, 4]中的数字(我希望返回它)时,它会返回for的值,例如:-349120689。这给了我一个java.lang.IndexOutOfBoundsException: Index: -349120689, Size: 5

为什么会发生这种情况,以及如何解决?

EN

Stack Overflow用户

发布于 2013-02-08 20:24:03

Random构造函数的参数是一个随机种子,而不是它返回的最大值。

而是将最大值传递给nextInt()

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14772430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档