作业声明不起作用

时间:2013-02-03 18:14:32

标签: java collections shuffle

List<Integer> list = Collections.shuffle(list);

此作业不起作用。它提供了“不兼容的类型”,即使它显然是List.shuffle()需要List。那么为什么这件事不起作用呢?

2 个答案:

答案 0 :(得分:3)

检查javadocCollections.shuffle的回复类型为void。首先创建List ,然后随机播放。例如:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Collections.shuffle(list);
System.out.println("Shuffled List: " + list);

答案 1 :(得分:1)

实际上有两个问题:

  1. 在初始化/声明变量之前无法访问变量,即使代码List list = new ArrayList(list);也不起作用,因为赋值的右操作数在左操作数之前被解析。
  2. 正如@Reimeus提到的 Collections.shuffle()有一个void返回类型,因此您无法将其(“结果”)分配给变量。方法shuffle()更改了作为输入给出的相同列表(对于功能程序员来说可能不直观)。