我创建了一种随机化列表的方法:
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 eg: 的值-349120689
。这给了我一个java.lang.IndexOutOfBoundsException: Index: -349120689, Size: 5
.
为什么会发生这种情况以及如何解决这个问题?