Sunset on the James River with a canoe on sand in the foreground
Sunset on the James River tonight
04.11.2025 23:03 β π 1 π 0 π¬ 0 π 0@thedonraab.bsky.social
Java Champion. Writer of blogs. Creator of the OSS Java library Eclipse Collections. Author of Eclipse Collections Categorically (https://a.co/d/6KmhrNK) . Opinions are my own. Blog: https://donraab.medium.com/
Sunset on the James River with a canoe on sand in the foreground
Sunset on the James River tonight
04.11.2025 23:03 β π 1 π 0 π¬ 0 π 0Blog: What if Java Collections had Eager Methods for Filter, Map, FlatMap?
"I encourage folks to check out the code in the experiment and maybe try some experiments of their own with Covariant Return Types, Default and Static methods for Interfaces, and Sealed Classes."
medium.com/better-progr...
I brought my bike on vacation to Virginia. I took it out for a five mile ride today. It is a beautiful and sunny day here. I hope you are having a beautiful day wherever you are. π€
04.11.2025 19:51 β π 2 π 0 π¬ 0 π 0Thanks, Chandra! π
02.11.2025 23:31 β π 0 π 0 π¬ 0 π 0"toBe(), or not toBe()."
My latest blog was inspired after taking some Smalltalk collections for a quick spin in the Pharo IDE. Collection converter methods are more than a convenience. They aid discoverability of a collections library types through code. π€
donraab.medium.com/what-if-java...
Don't stop exploring, learning, teaching, sharing, caring, thinking, and writing. That's how civilization ends.
02.11.2025 14:26 β π 3 π 0 π¬ 0 π 0Coding in Smalltalk is like riding a bike. Pictured I take an OrderedCollection and use converter methods in Smalltalk to convert to a SortedCollection, Set, and Bag. Same as when I first learned Smalltalk 30 years ago. Plus dark mode in Pharo.
Now I'm going to go ride my bike. π΄ββοΈ
Happy Belated Birthday Squeak!
news.squeak.org/2025/10/01/h...
Every day, someone new discovers and enjoys a blog I wrote years ago. If you're committed to the long journey, blogging will surprise you once in a while.
31.10.2025 23:51 β π 6 π 0 π¬ 0 π 0Need primitive type support and missing container types in the #Java Collections Framework? Many folks are quite content to keep waiting for Valkyries to come and take them to [project] #Valhalla, but some chose to follow Alan Kayβs maxim: "The best way to predict the future is to invent it"
27.10.2025 19:00 β π 4 π 3 π¬ 0 π 0My latest blog: Go Primitive in Java, or Go in a Box
I've programmed in Java for half of my life. I stopped waiting for language features when I knew lambdas would arrive. We got to work and solved collections problems together in OSS.
No regrets, just thanks. π
donraab.medium.com/go-primitive...
My latest blog: Go Primitive in Java, or Go in a Box
I've programmed in Java for half of my life. I stopped waiting for language features when I knew lambdas would arrive. We got to work and solved collections problems together in OSS.
No regrets, just thanks. π
donraab.medium.com/go-primitive...
I haven't.
23.10.2025 12:22 β π 0 π 0 π¬ 0 π 0Still waiting for the #Java of the future to solve all your collection problems? #EclipseCollections has been solving them since J2SE 1.4. Stop waiting. Start refactoring. Eclipse Collections makes Java look, feel, and run like a brand new programming language.
donraab.medium.com/refactoring-...
My book, "Eclipse Collections Categorically", is available on Kindle Unlimited (KU) again. It is available for free to KU subscribers from today through January 16, 2026.
Read the review from @waynebeaton.bsky.social to learn about what is in the book. π
blog.waynebeaton.ca/posts/ecc/re...
My book, "Eclipse Collections Categorically", is available on Kindle Unlimited (KU) again. It is available for free to KU subscribers from today through January 16, 2026.
Read the review from @waynebeaton.bsky.social to learn about what is in the book. π
blog.waynebeaton.ca/posts/ecc/re...
Do your Maps know how to flip?
levelup.gitconnected.com/parkour-with...
I tried adding Eclipse Collections ImmutableList to the benchmarks I wrote about in the blog. It shows up alphabetically above ListN. As I expected, it performs similar to Arrays.asList().
18.10.2025 17:22 β π 3 π 0 π¬ 1 π 0I've been using RandomAccessSpliterator for years in #Java without realizing it. I wrote about this default spliterator years ago. I wrote about it again after learning it is used by immutable Lists created by List.of() and Stream.toList(). Deja vu all over again.
donraab.medium.com/spliterating...
My latest blog: Spliterating Hairs Results in Spliterating Deja Vu
The story of a four day accidental rabbit hole self-extraction. I've fallen down this hole before. Who knows, maybe the blog will prove useful and lead to a small change in the #Java ListN class. π€·ββοΈ
donraab.medium.com/spliterating...
Yeah, ListN doesn't have a specialized spliterator implementation, so it uses AbstractList's RandomAccessSpliterator. It would probably be fairly simple to have it use ArraySpliterator. The difference is that the List RAS has a get() call vs direct array access. Seems like a moderate gain.
15.10.2025 04:13 β π 2 π 1 π¬ 1 π 0My latest blog: Spliterating Hairs Results in Spliterating Deja Vu
The story of a four day accidental rabbit hole self-extraction. I've fallen down this hole before. Who knows, maybe the blog will prove useful and lead to a small change in the #Java ListN class. π€·ββοΈ
donraab.medium.com/spliterating...
It was a very nice surprise to see RAS getting actively used still today. I don't know why I never thought before to run our unit test suite with breakpoints just outputting. Oh well, I got to learn something new.
15.10.2025 04:49 β π 0 π 0 π¬ 0 π 0I spent way too much time looking at this as I was stuck in my home office past few nights quarantined. I decided to write down and share some of what I found. I literally just finished it and saw your responses. Hope it is helpful. π
donraab.medium.com/spliterating...
Have you encountered RandomAccessSpliterator in your #Java travels? I saw it is used 76 times running the Eclipse Collections unit test suite in the debugger. TIL that both ListN and List12 classes use it, except for 1οΈβ£ element Lists. It's nice to see it is used. πβ€οΈ
donraab.medium.com/traveling-th...
Ok, in case it is helpful, I updated with parallelStream tests as well.
Source: github.com/vmzakharov/r...
@smarks.bsky.social @zakhav.bsky.social @josepaumard.bsky.social
Ok, I nerd sniped myself. I ran a benchmark comparing a simple summing of int values between ArrayList, Arrays . asList(), and ListN. The first two use ArraySpliterator, and ListN uses RandomAccessSpliterator.
Source: github.com/vmzakharov/r...
So, the million element question I have for @smarks.bsky.social is would it be better to have ListN return an ArraySpliterator instead of RandomAccessSpliterator? Of course, by "better" we should be able to measure a performance difference.
Part of my surprise here was that it doesn't already.
If it's not clear what ListN or List12 are in the JDK, the following example unit test will hopefully help.
* integersBig = ListN
* integersTwo = List12
* integersOne = List12
I have learned to read List12 as "List One or Two", not "List Twelve."
Have you encountered RandomAccessSpliterator in your #Java travels? I saw it is used 76 times running the Eclipse Collections unit test suite in the debugger. TIL that both ListN and List12 classes use it, except for 1οΈβ£ element Lists. It's nice to see it is used. πβ€οΈ
donraab.medium.com/traveling-th...