1
請考慮以下代碼。我認爲在處理Stream API時,在代碼中實現不可變性非常重要。我們怎樣才能得到一個不變性小寫字母的清單?如何在Java 8流api中實現不變性
List<String> stockList = Arrays.asList("GOOG", "AAPL", "MSFT", "INTC");
List<String> stockList2 = new ArrayList<>();
stockList.parallelStream()
.filter(e -> !e.contains("M"))
.map(String::toLowerCase)
.map(e -> stockList2.add(e))
.collect(toList());
stockList2.forEach(System.out::println);
字符串是一個不可變的,所以你在那裏覆蓋stockList2持有從stockList的字符串創建的新字符串 – urag
不是你問的問題,但一般來說你應該謹慎使用ParallelStream(在簡單情況下,開銷將大於好處) –
目前尚不清楚您在此方面的不變性。請澄清。 – shmosel