Java Holiday Calendar 2016 (Day 10): MapStream
The open-source class MapStream lets you stream over elements as well as pairs of key value elements, making changes to everything along the way.
Join the DZone community and get the full member experience.Join For Free
Today's tip is about the open-source class MapStream, which allows us to stream not only over elements, but over a pair of key value elements and make changes either to the keys, values, or both.
With MapStream, you can do this:
Map<String, Integer> numberOfCats = new HashMap<>(); numberOfCats.put("Anne", 3); numberOfCats.put("Berty", 1); numberOfCats.put("Cecilia", 1); numberOfCats.put("Denny", 0); numberOfCats.put("Erica", 0); numberOfCats.put("Fiona", 2); System.out.println( MapStream.of(numberOfCats) .filterValue(v -> v > 0) .sortedByValue(Integer::compareTo) .mapKey(k -> k + " has ") .mapValue(v -> v + (v == 1 ? " cat." : " cats.")) .map((k, v) -> k + v) .collect(Collectors.joining("\n")) );
This would produce the following:
Cecilia has 1 cat. Berty has 1 cat. Fiona has 2 cats. Anne has 3 cats.
Read more about MapStream here.
Follow the Java Holiday Calendar 2016 with small tips and tricks all the way through the winter holiday season.
Opinions expressed by DZone contributors are their own.