как вернуть коллекцию
Я хотел бы вернуть эту коллекцию, но это дает мне ошибку:
public Collection<String> Shuffle()
{
return Collections.shuffle(Arrays.asList(FullDeck));
}
FullDeck - это массив строк
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));
Метод shuffle() возвращает void
, поэтому вам не нужно возвращать значение. Вы можете переписать код следующим образом. Обратите внимание, что этот метод является побочным эффектом для изменения исходного списка FullDeck
.
public void shuffle()
{
Collections.shuffle(Arrays.asList(fullDeck));
}
Также обратите внимание, что методы и переменные в Java должны начинаться с строчных букв.
Collection.shuffle()
ничего не возвращает. Скорее, он изменяет список аргументов. Прочтите документацию здесь.
Скорее используйте это:
List<String> list = Arrays.asList(FullDeck);
// Shuffle the list
Collections.shuffle(list);
return list;
Вам гораздо лучше вернуть только простой старый список или, еще лучше, коллекцию, вот так:
// after: method returns a Collection reference
private Collection getList()
{
Collection list = new LinkedList();
list.add("Hello");
list.add("world");
return list;
}