如何返回一个集合

时间:2014-06-30 13:18:21

标签: java android

我想退回此系列,但它给了我一个错误:

public Collection<String> Shuffle()

{
return   Collections.shuffle(Arrays.asList(FullDeck));
}

FullDeck是一个String数组

4 个答案:

答案 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;
}