Avatar ·

Java 8 Stream中map()和flatMap()方法的区别是什么?

大家好!我最近开始学习Java 8,并试图理解Stream API。我读了几篇文章,但还是无法理解`map()`和`flatMap()`方法之间的区别。 我有一个简单的例子。假设有一个字符串列表: ```java List words = Arrays.asList("Hello", "World"); ``` 如果我对这个列表应用`map()`并想将每个字符串拆分成单独的字符: ```java words.stream() .map(word -> word.split("")) .forEach(System.out::println); ``` 我得到的输出类似于`[Ljava.lang.String;@1b6d3586`——一些哈希码,而不是字符。为什么会这样?我怎样才能得到字符列表? 我听说`flatMap()`可能有帮助,但我不明白具体如何帮助。这些方法之间的根本区别是什么?什么时候应该使用`map()`,什么时候使用`flatMap()`?感谢提供直观的例子和对新手的解释。 <<>>

map()和flatMap()的主要区别

关键区别在于map()