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