我想退回此系列,但它给了我一个错误:
public Collection<String> Shuffle()
{
return Collections.shuffle(Arrays.asList(FullDeck));
}
FullDeck是一个String数组
答案 0 :(得分:5)
Collections.shuffle()
不返回任何内容。你必须这样做:
public Collection<String> shuffle() {
List<String> list = Arrays.asList(FullDeck);
Collections.shuffle(list);
return list;
}
请注意,正如@Seelenvirtuose指出的那样,shuffle()
操作也会更改基础数组。这意味着您可以让shuffle()
方法具有void
方法类型,然后直接访问FullDeck
数组。这样您就可以将此方法缩短为一行:Collections.shuffle(Arrays.asList(FullDeck));
答案 1 :(得分:3)
shuffle()方法返回void
,因此您不需要返回值。您可以按如下方式重写代码。请注意,此方法可作为更改原始FullDeck
列表的副作用。
public void shuffle()
{
Collections.shuffle(Arrays.asList(fullDeck));
}
请注意,Java中的方法和变量应以小写字母开头。
答案 2 :(得分:0)
Collection.shuffle()
不会返回任何内容。而是修改参数列表。在这里阅读documentation。
而是使用它:
List<String> list = Arrays.asList(FullDeck);
// Shuffle the list
Collections.shuffle(list);
return list;
答案 3 :(得分:-3)
你最好只返回一个普通的旧List,或者更好的是一个Collection,就像这样:
// after: method returns a Collection reference
private Collection getList()
{
Collection list = new LinkedList();
list.add("Hello");
list.add("world");
return list;
}