StreamEx
jOOλ
StreamEx | jOOλ | |
---|---|---|
2 | 2 | |
2,149 | 2,057 | |
- | 0.0% | |
6.4 | 1.7 | |
27 days ago | 10 months 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.
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...
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:
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.
derive4j - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, folds, optics and typeclasses.
Functional Java - Backport of Java 8's lambda expressions to Java 7, 6 and 5
protonpack - Stream utilities for Java 8
underscore-java - java port of Underscore.js
λ - Functional patterns for Java
cyclops-react - An advanced, but easy to use, platform for writing functional applications in Java 8.