All Projects → beryx → streamplify

beryx / streamplify

Licence: Apache-2.0, Unknown licenses found Licenses found Apache-2.0 LICENSE Unknown license-header.txt
Java 8 combinatorics-related streams and other utilities

Programming Languages

java
68154 projects - #9 most used programming language
groovy
2714 projects

Projects that are alternatives of or similar to streamplify

Abacus
Advanced Combinatorics and Algebraic Number Theory Symbolic Computation library for JavaScript, Python
Stars: ✭ 16 (-60%)
Mutual labels:  combinatorics, permutations, combinations
RcppAlgos
Tool for Solving Problems in Combinatorics and Computational Mathematics
Stars: ✭ 31 (-22.5%)
Mutual labels:  permutation, combinatorics, combinations
combinatoricslib
Combinatorial Objects Generators for Java 7+.
Stars: ✭ 83 (+107.5%)
Mutual labels:  permutation, combinatorics, combinations
go-streams
Stream Collections for Go. Inspired in Java 8 Streams and .NET Linq
Stars: ✭ 127 (+217.5%)
Mutual labels:  stream, streams
combinate
Combinatorics generator for JavaScript and Typescript.
Stars: ✭ 20 (-50%)
Mutual labels:  combinatorics, combinations
combi
Pythonic package for combinatorics
Stars: ✭ 51 (+27.5%)
Mutual labels:  permutation, combinatorics
web-streams-polyfill
Web Streams, based on the WHATWG spec reference implementation
Stars: ✭ 198 (+395%)
Mutual labels:  stream, streams
godsend
A simple and eloquent workflow for streaming messages to micro-services.
Stars: ✭ 15 (-62.5%)
Mutual labels:  stream, streams
fast-cartesian
Fast cartesian product
Stars: ✭ 51 (+27.5%)
Mutual labels:  combinatorics, combinations
Remote Web Streams
Web streams that work across web workers and iframes.
Stars: ✭ 26 (-35%)
Mutual labels:  stream, streams
Chunk Store Stream
Convert an abstract-chunk-store compliant store into a readable or writable stream
Stars: ✭ 24 (-40%)
Mutual labels:  stream, streams
Labeled Stream Splicer
stream splicer with labels
Stars: ✭ 37 (-7.5%)
Mutual labels:  stream, streams
Multistream
A stream that emits multiple other streams one after another (streams3)
Stars: ✭ 237 (+492.5%)
Mutual labels:  stream, streams
wasm-streams
Bridging between web streams and Rust streams using WebAssembly
Stars: ✭ 61 (+52.5%)
Mutual labels:  stream, streams
Sql Streams
Painless low level jdbc abstraction using the java 8 stream api.
Stars: ✭ 17 (-57.5%)
Mutual labels:  stream, streams
Stream Splicer
streaming pipeline with a mutable configuration
Stars: ✭ 52 (+30%)
Mutual labels:  stream, streams
Cypher Stream
Neo4j Cypher queries as Node.js object streams
Stars: ✭ 58 (+45%)
Mutual labels:  stream, streams
Azure Event Hubs
☁️ Cloud-scale telemetry ingestion from any stream of data with Azure Event Hubs
Stars: ✭ 233 (+482.5%)
Mutual labels:  stream
data examples
An example app showing different ways to pass to and share data with widgets and pages.
Stars: ✭ 56 (+40%)
Mutual labels:  streams
Adalight Fastled
Adalight with FastLED support
Stars: ✭ 232 (+480%)
Mutual labels:  stream

PRs Welcome License Build Status

Streamplify

The goal of this library is to provide useful Java 8 streams and to assist you in building new streams that allow efficient parallel processing.

The utilities offered by Streamplify include:

  • combinatorics streams: permutations, combinations, Cartesian products, power sets, derangements, partial permutations.
  • classes that help you implement your own efficient parallel streams.

Example

The following code snippet uses a parallel permutation stream to find all solutions of the N-Queens problem for n = 10.

System.out.println(new Permutations(10)
        .parallelStream()
        .filter(perm -> {
            for(int i = 0; i < perm.length - 1; i++) {
                for(int j = i + 1; j < perm.length; j++) {
                    if(Math.abs(perm[j] - perm[i]) == j - i) return false;
                }
            }
            return true;
        })
        .map(perm -> IntStream.range(0, perm.length)
                .mapToObj(i -> "(" + (i + 1) + "," + (perm[i] + 1) + ")")
                .collect(Collectors.joining(", ")))
        .collect(Collectors.joining("\n")));

Before starting to use the library, take a look at the examples, read the documentation and consult the javadoc.

Streamplify is available in Maven Central and JCenter.

Contribute to this project!

We accept all types of contributions and we are very welcoming to first time contributors.

Read how to contribute and jump in!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].