1
maowu 2022 年 11 月 9 日 via Android 你说的是 Java8 吗?
|
2
yurong3333333333 OP @maowu 对。一般只知道有这么个 stream 可以用,但搜索 stream 的设计思想,却搜不到什么干货。
|
3
xiaofan2 2022 年 11 月 9 日 为什么不可以啊 你用 stream 不能遍历 map 和 set 吗
|
4
AmericanExpress 2022 年 11 月 9 日 1. 生成 stream 用到的是 Collection.stream()
2. Map 不可以,因为 Map 不是 Collection: https://docs.oracle.com/javase/8/docs/api/java/util/Map.html 3. Set 可以,因为 Set 是 Collection https://stackoverflow.com/questions/39950576/why-streams-cannot-be-created-for-map-in-java8 |
5
night98 2022 年 11 月 9 日 map 转一下 entry 就可以遍历了,不过有点文不对题,因为 stream 本身代表的是管道思想,map 的结构是 kv ,list 的结构通常意义上是非固定数量元素,所以 list to map 可以直接用
|
6
dqzcwxb 2022 年 11 月 9 日 |
7
aguesuka 2022 年 11 月 9 日 set.stream() 可以直接调用,map 可以用 map.entrySet().stream();
map 不是 collection 的原因参见 Java Collections API Design FAQ. 设计思想就是 map-reduce, 而 map-reduce 的设计思想就是 monad 那一套, 不过我更认为是 functor. |
8
Leviathann 2022 年 11 月 9 日 就是 jdk 团队懒的写工具方法
像 kotlin 都可以 asSequence |
9
RainCats 2022 年 11 月 9 日 map.foreach((k,v) -> sout......)
|