2013-02-03 39 views
0
List<Integer> list = Collections.shuffle(list); 

此分配不起作用。它給出了「不兼容的類型」,即使它明確是List.shuffle()需要List。那麼爲什麼這件事不會起作用呢?分配說明不起作用

+0

'集合'一般都是可變的。對它們的操作通常會發生。 –

+0

當你不關心閱讀文檔時,生氣與API相比是相當熱鬧的。 – Jack

回答

3

檢查javadocCollections.shuffle有一個void返回類型。創建您的List第一個,然後洗牌。例如:

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

注意還有另一個問題,'List list = new ArrayList(list);'也不會編譯。 – amit

+0

無效返回類型?那我該如何訪問呢? –

+0

它修改你傳入的'List',所以不需要分配,只需重新使用'list'引用即可。 – Reimeus

1

實際上有兩個問題:

  1. 初始化/聲明它,連碼List list = new ArrayList(list);將無法​​正常工作之前,您無法訪問一個變量,因爲右操作數賦值在左操作數之前被解析。
  2. 正如@Reimeus提到的Collections.shuffle()void返回類型,因此您不能將它(「結果」)分配給一個變量。方法shuffle()更改與輸入相同的列表(對功能程序員可能不直觀)。