Java 赋值语句不工作 List List=Collections.shuffle(List);

Java 赋值语句不工作 List List=Collections.shuffle(List);,java,collections,shuffle,Java,Collections,Shuffle,这个作业不起作用。它给出了“不兼容类型”,即使它显然是一个列表和。shuffle()接受一个列表。那么,为什么这件事不起作用呢?请检查集合。洗牌有一个void返回类型。首先创建您的列表,然后洗牌。例如: List<Integer> list = Collections.shuffle(list); List List=Arrays.asList(1,2,3,4,5); 集合。洗牌(列表); System.out.println(“无序列表:+List”); 请检查集合。洗牌有一个v

这个作业不起作用。它给出了“不兼容类型”,即使它显然是一个
列表
。shuffle()
接受一个
列表
。那么,为什么这件事不起作用呢?

请检查<代码>集合。洗牌有一个
void
返回类型。首先创建您的
列表
,然后洗牌。例如:

List<Integer> list = Collections.shuffle(list);
List List=Arrays.asList(1,2,3,4,5);
集合。洗牌(列表);
System.out.println(“无序列表:+List”);
请检查<代码>集合。洗牌有一个
void
返回类型。首先创建您的
列表
,然后洗牌。例如:

List<Integer> list = Collections.shuffle(list);
List List=Arrays.asList(1,2,3,4,5);
集合。洗牌(列表);
System.out.println(“无序列表:+List”);

实际上有两个问题:

  • 在初始化/声明变量之前,无法访问该变量,即使是代码
    List List=new ArrayList(List)将不起作用,因为赋值的右操作数在左操作数之前被解析
  • 正如@Reimeus
    Collections.shuffle()
    所述,它有一个
    void
    返回类型
    ,因此您不能将其(“结果”)赋给变量。方法
    shuffle()
    更改与输入相同的列表(函数式程序员可能不太直观)

  • 实际上有两个问题:

  • 在初始化/声明变量之前,无法访问该变量,即使是代码
    List List=new ArrayList(List)将不起作用,因为赋值的右操作数在左操作数之前被解析
  • 正如@Reimeus
    Collections.shuffle()
    所述,它有一个
    void
    返回类型
    ,因此您不能将其(“结果”)赋给变量。方法
    shuffle()
    更改与输入相同的列表(函数式程序员可能不太直观)

  • 集合
    通常是可变的。对它们的操作通常发生在适当的地方。当你不在乎阅读文档时,对API生气是非常有趣的。
    Collection
    s通常是可变的。对它们的操作通常发生在适当的地方。当你不在乎阅读文档时,对API生气是非常可笑的。注意还有另一个问题,
    List List=new ArrayList(List)也不会编译。它会修改您传入的
    列表
    ,因此无需分配,只需重新使用
    列表
    引用即可。注意,还有一个问题,
    列表=新的ArrayList(List)也不会编译。它会修改您传入的
    列表
    ,因此无需分配,只需重新使用
    列表
    引用即可。