6 ms·
> maps don't support streams This is very misleading. There is not a #stream method on Map because Map supports three different streams: map.keySet().stre
by mhaymo 11y ago
> maps don't support streams
This is very misleading. There is not a #stream method on Map because Map supports three different streams:
map.keySet().stream()
map.values().stream()
map.entrySet().stream()
- tokenizerrr 11y agoBut those are streams on sets.
- mhaymo 11y agoThose are streams on views on the map. My complaint is that a reader seeing "maps don't support streams" with no further explanation is unlikely to get the correct idea, and may infer that something like map.entrySet().stream().filter(e -> e.getKey().equals(e.getValue())).findAny() is not expressible.
- masklinn 11y agoThey're streams on map views, a stream on Map itself doesn't really make sense because there are multiple ways to interpret a map as a sequence and it's not clear what should be the default (e.g. Python defaults to the equivalent of keySet().stream(), but Rust defaults to entrySet().stream()). keySet() and entrySet() return Set-conforming objects because they can, values() can't and only returns a Collection, but these three objects delegate much of their logic to the map itself.
- oweiler 11y agoFurthermore, Maps have a .forEach method m.forEach((key, value) -> System.out.println("key: " + key + " value: " + value));
- winterbe 11y agoThanks for your feedback. I've improved the section about maps to better reflect the capabilities of streaming maps: https://github.com/winterbe/java8-tutorial/blob/master/README.md#maps https://github.com/winterbe/java8-tutorial/blob/master/READM...
- hitekker 11y agoThanks for your hard work here! Side note: http://winterbe.com http://winterbe.com looks quite similar to angel.co. Or does angel.co look quite similar to your website? :-)
- winterbe 11y agoDunno. I wrote the whole css for winterbe.com from scratch. To be honest I don't find both pages like similar besides white background and gray subtitles. :-)
- aslakhellesoy 11y agoThose methods are not on Map, but on Set and Collection.