https://github.com/sbasalaev/sbasalaev-common
Common goodies I use across my projects.
https://github.com/sbasalaev/sbasalaev-common
Last synced: about 1 year ago
JSON representation
Common goodies I use across my projects.
- Host: GitHub
- URL: https://github.com/sbasalaev/sbasalaev-common
- Owner: SBasalaev
- License: mit
- Created: 2023-10-07T15:49:42.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-08T13:47:42.000Z (over 2 years ago)
- Last Synced: 2025-02-16T17:55:30.553Z (over 1 year ago)
- Language: Java
- Size: 270 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## sbasalaev-common
[](https://github.com/SBasalaev/sbasalaev-common/releases/latest)
[](https://api.sbasalaev.me/sbasalaev-common)
Common goodies that I use across my projects. These are everyday features that
are not present in Java or were not available at the time of writing or just
some alternate APIs I comfortable with. The library includes:
* Custom collections with a clear separation between read and write APIs, such as
[List](https://api.sbasalaev.me/sbasalaev-common/me.sbasalaev.common/me/sbasalaev/collection/List.html)
which only has read methods
and [MutableList](https://api.sbasalaev.me/sbasalaev-common/me.sbasalaev.common/me/sbasalaev/collection/MutableList.html)
which also has modification methods.
* Functional transformations on collections through
[Traversable](https://api.sbasalaev.me/sbasalaev-common/me.sbasalaev.common/me/sbasalaev/collection/Traversable.html).
```java
list("A", "BB", "CCC").map(String::length).fold(0, Integer::sum)
```
Java 1.8 introduced Stream API which is much more powerful.
* Multimaps: [ListMultimap](https://api.sbasalaev.me/sbasalaev-common/me.sbasalaev.common/me/sbasalaev/collection/ListMultimap.html)
and [SetMultimap](https://api.sbasalaev.me/sbasalaev-common/me.sbasalaev.common/me/sbasalaev/collection/SetMultimap.html).
[Map](https://api.sbasalaev.me/sbasalaev-common/me.sbasalaev.common/me/sbasalaev/collection/Map.html)
is also a kind of multimap and shares common API with them.
* [Opt](https://api.sbasalaev.me/sbasalaev-common/me.sbasalaev.common/me/sbasalaev/Opt.html)
for optional values. Java 1.8 introduced Optional that serves the same purpose
but is not a collection. I sometimes find it convenient to process an optional
value like
```java
for (var value : optionalValue) {
// do something
}
```
* [Lazy](https://api.sbasalaev.me/sbasalaev-common/me.sbasalaev.common/me/sbasalaev/Opt.html)
for lazily evaluated values.
* [TODO()](https://api.sbasalaev.me/sbasalaev-common/me.sbasalaev.common/me/sbasalaev/API.html#TODO(java.lang.String))
– one of the most useful functions during development.