What is `map` in a Java Stream
Gunnar Gissel
Posted on June 13, 2018
Originally published at www.gunnargissel.com
Mapping is how to convert one type of object to another with a stream. Say you have a set of Fruit
and you want to show people what is in your set. It would be helpful to have a list of fruit names to do so.
fruitList.stream().map(fruit::getName).collect(Collectors.toList);
That's pretty simple; you can imagine how to do that in real life with a basket of fruit.
Pick up a piece of fruit, write its name down. Pick up another piece of fruit, write its name down, etc.
Mapping also lets you you can't easily simulate in real life. Say you have a Fruit set and you want Oranges, instead of Apples (I think this is closer to transmutation than swapping, but it's a metaphor, ymmv).
You can do that, with Java:
fruitList.stream().map(fruit -> {
if( fruit instanceof Apple){
return new Orange();
}
return fruit;
}).collect(Collectors.toSet);
If you liked this article, sign up for my mailing list to get monthly updates on interesting programming articles
Posted on June 13, 2018
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.