View of the Grinnell Glacier from overlook point after a grueling 9 mile hike

This is a release which we had not planned for, but we released it nonetheless.

This must be the first time since we open sourced Eclipse Collections that we performed two releases within the same month.

Changes in Eclipse Collections 10.4.0

There are only 2 changes in the 10.4.0 release compared to the feature rich 10.3.0 release viz.

Why was release 10.4.0 necessary?

In today’s rapid deployment world, it should not be a novel aspect that a project performs multiple releases. However, the Eclipse Collections maintainer team, performs releases when one or more of the below criteria are satisfied:

Sunset at Port Hardy (June 2019)

Eclipse Collections comes with it’s own List, Set, and Map implementations. These implementations extend the JDK List, Set, and Map implementations for easy interoperability. In Eclipse Collections 10.3.0, I introduced a new API MapIterable.getOrDefault(). In Java 8, Map.getOrDefault() was introduced, so what makes it a new API for Eclipse Collections 10.3.0? Technically, it is new but not so new API! Consider the code snippets below, prior to Eclipse Collections 10.3.0:

In my previous blogs I explained how Eclipse Collections UnifiedMap and UnifiedSet works. In this blog, we will take a look at Multimap or Multi-valued Map in Eclipse Collections.

According to Javadoc of Map, a Map is an object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value. However, we come across scenarios wherein more than one value has to be mapped to a key. In such scenarios where multiple values need to be mapped to a single key, we end up creating a Map with a single key…

I have often times encountered the necessity to count the number of objects. I have experienced the necessity to count in two flavors, first is to count the number of objects which satisfy a certain criteria and second is to find the number of times a particular object is encountered. In this blog we are going to see how to solve the second problem: Find the number of times a particular object is encountered.

Bag (or Multiset):

Bag is a data structure which you use when you are counting objects by putting in a Map<K, Integer> . A Bag is…

In my previous blog I explained how Eclipse Collections UnifiedMap works. In this blog, we will see how UnifiedSet in Eclipse Collections works.

Unified Set

UnifiedSet is the Set implementation of Eclipse Collections and is implemented very differently than a JDK HashSet. UnifiedSet is based on principles similar to UnifiedMap.

A JDK java.util.HashSet is backed by a java.util.HashMap. The backing HashMap has a dummy value which is associated with an object in the backing Map: HashMap<E,Object> map ,Object PRESENT = new Object() This design leads to HashSet inheriting the behavior of the HashMap. A HashMap is backed by a table…

Eclipse Collections has optimized List, Set and Map implementations and adds more specialized data structures like Bag, Multimap, BiMap. Since, most of the Eclipse Collections implementations extend the respective JDK collections interfaces, we ensure users can have inter-op with the JDK. The library also provides a rich suite of primitive Lists, Sets, Bags, Stacks and Maps for all 8 primitives. Eclipse Collections provides lazy and eager execution patterns, it provides Mutable, Unmodifiable and Immutable collection types. Eclipse Collections has 80+ iteration patterns/API on the collections itself. …

After 27+ hours of travel I just reached Pune, my home town. I am excited for my India Java User Group Tour 2018. I will be presenting on Java 10, Java 9, Eclipse Collections, Spark and more!

It is a quick pit stop in Pune before I head over to Chennai for my first JUG meet-up in #INDJUG tour. Abstracts for all my talks are available at the end of this blog. Join me at one of these cities:

Chennai JUG: Saturday, April 21

Delhi-NCR JUG: Sunday, April 22

Bengaluru JUG: Wednesday, April 25

Hyderabad JUG: Sunday, April 29


Sunset on Miyajima (Dusk of 2017)

As the sun is about to set for 2017, I but can’t help reflect what an amazing year 2017 has been! For me personally 2017 was a year of many “firsts”. I have summarized few of the many awesome experiences I had in 2017.

Experiencing the Land of the Rising Sun: In February I visited Japan and was awestruck by the beauty, heritage, friendliness, hospitality, cleanliness and most importantly the delicious food. I do not speak Japanese, and at first I was a bit apprehensive of how the visit will turn out. Few of my Japanese friends taught me some…

Cities visited

This year I had the pleasure to visit multiple Java User Groups in England, Ireland, Northern Ireland and Scotland. I presented about Eclipse Collections, Java 9 and Robots.

Day 1–25 November 2017: London Java Community (LJC) Unconference:

UnifiedMap: How it works?

Eclipse Collections comes with it’s own implementations of List, Set and Map. It also has additional data structures like Multimap, Bag and an entire Primitive Collections hierarchy. In this blog we will take a look under the hood of UnifiedMap.


UnifiedMap is the Map implementation of Eclipse Collections and is implemented very differently than a JDK HashMap.

java.util.HashMap is backed by a table of Entry objects. The Entry implementation in HashMap has hashcode, key, value, next as members, HashMap essentially caches the hashcode of keys.

Nikhil Nanivadekar

Lead Eclipse Collections:, Java Champion. I enjoy hiking, skiing, reading. All opinions stated by me are my own. Twitter @nikhilnanivade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store