Welcome to the Custom Java Streams Module repository! This module provides an in-depth exploration of Java Streams internals, helping you understand key concepts such as pairs, iterators, functions, and bifunctions. It also offers custom implementations of essential stream operations, including filtering, mapping, reducing, and flattening.
├── src
│ ├── collection
│ │ └── List.java
│ ├── function
│ │ ├── BiConsumer.java
│ │ ├── BiFunction.java
│ │ ├── BinaryOperator.java
│ │ ├── Consumer.java
│ │ ├── Function.java
│ │ ├── Predicate.java
│ │ └── Supplier.java
│ ├── iterator
│ │ ├── Iterable.java
│ │ └── Iterator.java
│ ├── Main.java
│ ├── stream
│ │ └── Stream.java
│ └── util
│ └── Optional.java
- collection/List.java: Custom list implementation for experimenting with .stream() method.
- function/: Custom functional interfaces including BiConsumer, BiFunction, BinaryOperator, Consumer, Function, Predicate, and Supplier.
- iterator/: Custom iterator and iterable interfaces.
- stream/Stream.java: Custom Java Streams module source code.
- util/Optional.java: Custom optional implementation.