New ways to create Maps in Eclipse Collections Map API

Top view of the city of Copenhagen, Denmark taken in 2012

Eclipse Collections provide a way to create both Mutable and Immutable Map with its rich Map API. Recently I worked on Eclipse Collections creating new methods on both MutableMap and ImmutableMap.

Eclipse Collections already has MutableMap.withMap method which allows merging a MutableMap with any JDK Map and returns a MutableMap. I contributed a similar method ImmutableMap.newWithMap to ImmutableMap API. I also added ImmutableMap.newWithMapIterable method so that a user can merge any MapIterable type which includes MutableMap and ImmutableMap as well. The new methods return a new ImmutableMap because it is created only once and it does not have a put method to allow any modifications. To maintain symmetry with the MutableMap, I added MutableMap.withMapIterable and MutableMap.putAllMapIterable methods. The link to my Pull Request is here.

The new APIs methods will be available in the next release of EC (11.0.0).

  • After I added the two new methods to the MutableMapIterable interface and two methods to ImmutableMapIterable interface, I started getting a lot of compilation errors, so I started tracing down the path to fix those compilations down the hierarchy. I thought it was very cool.
  • I made these four implementations using four commits in a Pull request. In order to manage and keep the history aligned, I created a lot of local branches. I had amazing learning experience using Git rebase, cherry-picking, squash and many more.
  • I worked with passionate developers in this project and always found someone helping me out when I felt stuck. To me, it was very important because I was new to contribute to OSS.
  • I also found some of the blogs below to be very useful. Do check them out!

Happy Coding and Happy Learning!

I am a software developer, traveller, blogger, yogi and cricket lover. If you like any of these topics, here is my twitter link @nehasardana09 and linkedIn page to connect.

Software Developer.. Traveller..Yogi