我想知道爲什麼Java 8不包含對數組使用流的支持,就像它在集合上使用流一樣。你可以寫爲什麼Java 8沒有「myArray.stream()」函數?
Collection<String> myCollection = new ArrayList<String>();
Stream<String> stream = myCollection.stream();
,但你不能寫:
String[] myArray = new String[] {};
Stream<String> stream = myArray.stream();
我知道的實用方法Arrays.stream
的,所以這是可以用來代替:
Stream<String> stream = Arrays.stream(myArray);
但它給我留下想知道爲什麼這種笨拙的靜態實用方法調用在lambda表達式允許簡單編碼這麼多的上下文中是必需的。我意識到Collection
(基於對象/接口的)世界與array
更「本土」世界之間的顯着差異。
誰能詳細說明這一點?
有人會比我回答得更好,但是數組是Java中特殊的對象,這不是來自像'Collection'這樣的特定類/接口。你沒有'Array'而是'String []',這是特定於數組的 –
AxelH
爲什麼'stream'特別是? 「Collection」接口中的其他方法呢? –