jOOλ
StreamEx
jOOλ | StreamEx | |
---|---|---|
2 | 2 | |
2,057 | 2,149 | |
0.0% | - | |
1.7 | 6.4 | |
10 months ago | 23 days ago | |
Java | Java | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
jOOλ
-
To use Java Collections or another collections library? (Eclipse, Guava, Apache)
Jool has tuples and lots of extra niceties for working with streams, and I thing it has smaller surface than vavr. You have a method zipWithIndex than allows you to do
-
Exceptions and Streams
Introducing the Unchecked.function() from the jool library that does EXACTLY what we did above. Using it, the final code looks like:
StreamEx
-
Favorite hidden gem library?
I really like StreamEx. I do not know why people do not use it often, the syntax is just wonderful.
-
Jodd – The Unbearable Lightness of Java
It gets more perverse if you need to flatMap, or transmute components of map types, etc. If you want even more power, take a look at https://github.com/amaembo/streamex. This sort of container manipulation bread and butter for business processing. I use it every day, sometimes with a dozen operations. This (with liberal use of `final` values) makes for some pretty functional-looking code.
I'll grant you the Kotlin or Scala version is slightly more compact. But not fundamentally different, like the Go version.
I (and the pretty much every language designer in the post-Java era) disagree with you about checked exceptions, but that's a whole different thread...
What are some alternatives?
Javaslang - vʌvr (formerly called Javaslang) is a non-commercial, non-profit object-functional library that runs with Java 8+. It aims to reduce the lines of code and increase code quality.
Functional Java - Backport of Java 8's lambda expressions to Java 7, 6 and 5
derive4j - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, folds, optics and typeclasses.
protonpack - Stream utilities for Java 8
λ - Functional patterns for Java
underscore-java - java port of Underscore.js
cyclops-react - An advanced, but easy to use, platform for writing functional applications in Java 8.