JetBrains Technology Day for Java – Do It Yourself: Collections
On the 10th July 2020, JetBrains hosted a Technology Day for Java. We had 10 presentations and the videos for them are available here. Over the coming weeks, in no particular order, we’d like to share with you extra resources that our speakers kindly provided and any links to further reading or code samples.
We hosted Nikhil Nanivadekar talking about collections. Collections are among the basic building blocks for writing code. Frequently used collections, such as List, Set, and Map, are designed to serve a basic fundamental purpose, but sometimes these collections are not enough, and developers will want to extend them to add new functionality.
In this hands-on demo, Nikhil extended the Map data structure to create two new collections called a bag (MultiSet) and a multimap (MultiValuedMap) and explained the basics of creating a new collection, adding new APIs, the salient aspects of the new collection, and the various knobs and controls required to make it safe and usable.
We loved how Nikhil started at the beginning with his presentation and proceeded to take us through it in real time. Nikhil live-coded using IntelliJ IDEA and used Test Driven Development (TDD) to create new collections. You might even pick up an IntelliJ IDEA trick or two while watching Nikhil code! Nikhil asked us to mention that Eclipse Collections has nothing to do with Eclipse IDE and he writes code for Eclipse Collections in IntelliJ IDEA.
All the code from the session is available here:
- Code respository: https://github.com/nikhilnanivadekar/DIYCollections
Eclipse Collections information
Further information about Eclipse Collections is available here:
- Eclipse Collections website: https://www.eclipse.org/collections/
- Eclipse Collections GitHub Repo: https://github.com/eclipse/eclipse-collections
- Eclipse Collections Kata Repo: https://github.com/eclipse/eclipse-collections-kata
- Eclipse Collections API Design: http://eclipse.github.io/eclipse-collections-kata/api-design/#/
These are additional posts provided by Nikhil if you’re interested in learning more:
- UnifiedSet: https://medium.com/oracledevs/unifiedset-the-memory-saver-25b830745959
- UnifiedMap: https://medium.com/oracledevs/unifiedmap-how-it-works-48af0b80cb37
- Bag: https://medium.com/oracledevs/bag-the-counter-2689e901aadb
- Multimap: https://medium.com/oracledevs/multimap-how-it-works-a3430f549d35
What our audience thought of Nikhil’s demo
CyberneticKoi (@CyberneticKoi) July 10, 2020
THANKS ! @NikhilNanivade Incredible presentation bro
“Technology Day For Java”
cc @javabsas and @jetbrains#JetBrainsLovesJava#JBTechDayforJava #JetBrainsLovesJava #Java #JavaBaires #JavaBsAs #JavaProgrammers #javaArgentina #loveJavaProgramming #Jug pic.twitter.com/Gm6INLjlBe
— C:\Users\Mauri\Java (MauriDeveloper) July 10, 2020
Carlos R. Ramirez (crramirezc) July 10, 2020