Amazing Ruby's "Enumerable" ported to Java

Overview

Maven Javadocs License: MIT Commit activity Hits-of-Code

CI 0pdd Dependency Status Known Vulnerabilities

DevOps By Rultor.com EO badge We recommend IntelliJ IDEA

Qulice Maintainability Rating Codebeat Badge Codacy Badge Codecov

Overview

enumerable4j is a Ruby's well known Enumerable ported to java as interface with set of default methods which simplify typical operations with collections.

/**
 * The iterable with primitive operations witch simplify typical actions like count, map, etc.
 *
 * The API is based on Ruby's Enumerable:
 *  https://ruby-doc.org/core-2.6/Enumerable.html.
 *
 * The Enumerable provides methods with several traversal and searching features, and with the
 * ability to sort. The class must provide a method each, which yields successive members of the
 * collection.
 *
 * @param <X> The type of entities.
 * @since 0.1.0
 */
public interface Enumerable<X> extends Collection<X> {
    /**
     * Passes each element of the collection to the given block.
     * @param prd The predicate to match each element.
     * @return The true if the block never returns false or nil.
     */
    default boolean all(Predicate<T> prd) {
        // ...
    }

    /**
     * Passes at least one element of the collection to the given block.
     * @param prd The predicate to match at least one element.
     * @return The true if the block never returns false or nil.
     */
    default boolean any(Predicate<T> prd) {
        // ...
    }

    /**
     * Doesn't passes elements of the collection to the given block.
     * @param prd The predicate to match none elements.
     * @return The true if the block never returns false or nil.
     */
    default boolean none(Predicate<T> prd) {
        // ...
    }

    /**
     * Returns an enumerable containing all elements of enumerable for which the given function
     *  returns a true value.
     * If no predicate (null) is given, then 'this' is returned instead.
     * @param prd The function to match each element.
     * @return The enumerable.
     */
    default Enumerable<T> select(Predicate<T> prd) {
        // ...
    }

    /**
     * Returns an enumerable containing all elements of enumerable for which the given function
     *  returns a false value.
     * If no predicate (null) is given, then 'this' is returned instead.
     * @param prd The function to match each element.
     * @return The enumerable.
     */
    default Enumerable<T> reject(Predicate<T> prd) {
        // ...
    }

    /**
     * Returns an enumerable containing first element of enumerable for which the given function
     *  returns a true value.
     * If no predicate (null) is given, or no element found then null is returned instead.
     * @param prd The function to match each element.
     * @return The first element of enumerable, that matches predicate.
     */
    default T find(Predicate<T> prd) {
        // ...
    }

    /**
     * Returns an enumerable containing first element of enumerable for which the given function
     *  returns a true value.
     * If no predicate (null) is given, or no element found then alternative is returned instead.
     * @param prd The function to match each element.
     * @param alt The alternative to return in case of null predicate or no element found.
     * @return The first element of enumerable, that matches predicate.
     */
    default T find(Predicate<T> prd, T alt) {
        // ...
    }

    /**
     * Returns an enumerable containing all elements, on which given function was applied.
     * If no function (null) is given, then 'this' is returned instead.
     * @param fnc The function to apply to each element.
     * @param <Y> The type of target entity.
     * @return The enumerable.
     */
    default <Y> Enumerable<Y> map(Function<? super T, ? extends Y> fnc) {
        // ...
    }

    /**
     * Returns the number of elements that are present in enumerable for which the given
     * function return true.
     * If no function (null) is given, then 'size' is returned instead.
     * @param prd The function to match each element.
     * @return Number of elements satisfying the given function.
     */
    default long count(Predicate<T> prd) {
        // ...
    }
}

See more.

How to use

  1. Get the latest version here:

    <dependency>
      <groupId>io.github.dgroup</groupId>
      <artifactId>enumerable4j</artifactId>
      <version>${version}</version>
    </dependency>
  2. Assign the Enumerable interface with default methods to your own collection

    /**
     * The collection which you implemented in your project for some purposes.
     */
    public class YourOwnCollection<X> extends Collection<X> implements Enumerable<X> {
        //
    }

    You may (but not required) override the default implementations of methods from Enumerable if needed.

  3. Java version required: 1.8+.

  4. Comparing matrix with other libs:

    enumerable4j (MIT) Java 8 cactoos (MIT) eclipse-collections (EDL)
    .all(...) .stream().allMatch(...); new And<>(...,...).value() tbd
    .any(...) .stream().anyMatch(...); new Or<>(...,...).value() tbd
    .none(...) .stream().noneMatch(...); new And<>(...,...).value() tbd
    .select(...) .stream().filter(...).collect(Collectors.toList()) new Filtered<>(...,...) tbd
    .reject(...) .stream().filter((...).negate()).collect(Collectors.toList()) new Filtered<>(...,...) tbd
    .map(...) .stream().map(...).collect(Collectors.toList()) new Mapped<>(...,...) tbd
    .count(...) .stream().filter(...).count() new Filtered<>(...).size() tbd
    .find(...) .stream().filter(...).findFirst().orElse(...) new FirstOf<>(...,...).value() tbd

.all

YourOwnCollection<Integer> src = ...                    // with elements [1, 2, 3]   
boolean allPositive = src.all(v -> v > 0);              // true 

.any

YourOwnCollection<Integer> src = ...                    // with elements [-1, 0, 1]
boolean oneIsPositive = src.any(v -> v > 0);            // true 

.none

YourOwnCollection<Integer> src = ...                    // with elements [-2, -1, 0]
boolean noneIsPositive = src.none(v -> v > 0);          // true 

.select

YourOwnCollection<Integer> src = ...                    // with elements [-1, 1, 2]
Enumerable<Integer> positive = src.select(v -> v > 0);  // [1, 2] 

.reject

YourOwnCollection<Integer> src = ...                    // with elements [-1, 1, 2]
Enumerable<Integer> negative = src.reject(v -> v > 0);  // [-1]

.map

YourOwnCollection<Integer> src = ...                    // with elements [0, 1, 2]
Enumerable<Integer> positive = src.map(v -> v + 1);     // [1, 2, 3] 

.count

YourOwnCollection<Integer> src = ...                    // with elements [-1, 0, 1]
long countNegative = src.count(val -> val < 0);         // 1

.find

YourOwnCollection<Integer> src = ...                    // with elements [-1, 0, 1]
Integer first = src.find(val -> val > 0);               // 1 
Integer alternative = src.find(val -> val > 5, 50);     // 50                

How to contribute?

EO badge

  1. Pull requests are welcome! Don't forget to add your name to contribution section and run this, beforehand:
    mvn -Pqulice clean install
  2. Everyone interacting in this project’s codebases, issue trackers, chat rooms is expected to follow the code of conduct.
  3. Latest maven coordinates here:
    <dependency>
        <groupId>io.github.dgroup</groupId>
        <artifactId>enumerable4j</artifactId>
        <version>${version}</version>
    </dependency>

Contributors

Comments
  • Added 'any' and 'none' methods implementation

    Added 'any' and 'none' methods implementation

    Many thanks for your contribution, we truly appreciate it. We will appreciate it even more, if you make sure that you can say "YES" to each point in this short checklist:

    • You made a small amount of changes (less than 100 lines, less than 10 files)
    • You made changes related to only one bug (create separate PRs for separate problems)
    • You are ready to defend your changes (there will be a code review)
    • You don't touch what you don't understand
    • You ran the build locally and it passed

    This article will help you understand what we are looking for: http://www.yegor256.com/2015/02/09/serious-code-reviewer.html

    Thank you for your contribution!


    View rendered readme.md

    opened by smithros 11
  • Implemented count #29

    Implemented count #29

    Many thanks for your contribution, we truly appreciate it. We will appreciate it even more, if you make sure that you can say "YES" to each point in this short checklist:

    • You made a small amount of changes (less than 100 lines, less than 10 files) YES
    • You made changes related to only one bug (create separate PRs for separate problems) YES
    • You are ready to defend your changes (there will be a code review) YES
    • You don't touch what you don't understand YES
    • You ran the build locally and it passed YES

    This article will help you understand what we are looking for: http://www.yegor256.com/2015/02/09/serious-code-reviewer.html

    Thank you for your contribution!


    View rendered readme.md

    opened by singhashutosh96 7
  • [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.33 to 1.34

    [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.33 to 1.34

    Snyk has created this PR to upgrade org.openjdk.jmh:jmh-core from 1.33 to 1.34.

    :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 23 days ago, on 2021-12-23.

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 5
  • [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.32 to 1.33

    [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.32 to 1.33

    Snyk has created this PR to upgrade org.openjdk.jmh:jmh-core from 1.32 to 1.33.

    :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 23 days ago, on 2021-08-09.

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 5
  • [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.31 to 1.32

    [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.31 to 1.32

    Snyk has created this PR to upgrade org.openjdk.jmh:jmh-core from 1.31 to 1.32.

    :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 22 days ago, on 2021-05-26.

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 5
  • [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.30 to 1.31

    [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.30 to 1.31

    Snyk has created this PR to upgrade org.openjdk.jmh:jmh-core from 1.30 to 1.31.

    :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 23 days ago, on 2021-05-12.

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 5
  • [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.29 to 1.30

    [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.29 to 1.30

    Snyk has created this PR to upgrade org.openjdk.jmh:jmh-core from 1.29 to 1.30.

    :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 22 days ago, on 2021-05-05.

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 5
  • [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.28 to 1.29

    [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.28 to 1.29

    Snyk has created this PR to upgrade org.openjdk.jmh:jmh-core from 1.28 to 1.29.

    :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 23 days ago, on 2021-03-24.

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 5
  • [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.27 to 1.28

    [Snyk] Upgrade org.openjdk.jmh:jmh-core from 1.27 to 1.28

    Snyk has created this PR to upgrade org.openjdk.jmh:jmh-core from 1.27 to 1.28.

    :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 22 days ago, on 2021-03-01.

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 5
  • [Snyk] Upgrade org.llorllale:cactoos-matchers from 0.23 to 0.24

    [Snyk] Upgrade org.llorllale:cactoos-matchers from 0.23 to 0.24

    Snyk has created this PR to upgrade org.llorllale:cactoos-matchers from 0.23 to 0.24.

    :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 22 days ago, on 2021-02-20.

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by dgroup 5
  • [Snyk] Upgrade org.llorllale:cactoos-matchers from 0.17 to 0.23

    [Snyk] Upgrade org.llorllale:cactoos-matchers from 0.17 to 0.23

    Snyk has created this PR to upgrade org.llorllale:cactoos-matchers from 0.17 to 0.23.

    :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 6 versions ahead of your current version.
    • The recommended version was released 2 months ago, on 2021-01-16.

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by dgroup 5
  • [Snyk] Upgrade org.openjdk.jmh:jmh-generator-annprocess from 1.35 to 1.36

    [Snyk] Upgrade org.openjdk.jmh:jmh-generator-annprocess from 1.35 to 1.36

    Snyk has created this PR to upgrade org.openjdk.jmh:jmh-generator-annprocess from 1.35 to 1.36.

    :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 22 days ago, on 2022-11-14.

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 2
  • [Snyk] Upgrade org.cactoos:cactoos from 0.49 to 0.50.1

    [Snyk] Upgrade org.cactoos:cactoos from 0.49 to 0.50.1

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to upgrade org.cactoos:cactoos from 0.49 to 0.50.1.

    :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 2 versions ahead of your current version.
    • The recommended version was released 23 days ago, on 2022-07-11.

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by dgroup 0
  • Refactoring: Joined support methods

    Refactoring: Joined support methods

    i think it would be a good idea to add support of Joined instance for all methods with the (Predicate<X>, Predicate<X>...) signature:

    all(Joined<X>)
    
    opened by dykov 0
  • Refactoring: add logical OR for Joined

    Refactoring: add logical OR for Joined

    Now Joined is a compound predicate that represents a short-circuiting logical AND of all given predicates. We need some method/inner class for logical OR.

    I suggest using static classes:

    new Joined.And( ... );
    new Joined.Or( ... );
    
    opened by dykov 0
  • Refactoring - new class needed Joined to join all predicates to one

    Refactoring - new class needed Joined to join all predicates to one

    public final class Joined implements Predicate<T> {
        public Joined(Predicate<T> first, Predicate<T> ... other) {
             ...
        }
        ...
    }
    
    good first issue 
    opened by dgroup 1
Releases(0.5.0)
  • 0.5.0(Jul 10, 2021)

    See #77, release log:

    • 4236c56818e326d6ca8de64bf92f3cfb47242bc7 by @dgroup: #77: Repository with assets is...
    • 003bf8940506e58301a76006007494210cc79f24 by @dgroup: Merge branch 'master' into add...
    • 85ba8a5be382986d7b8a9a3b7c3b73f8bccf24b7 by @snyk-bot: fix: upgrade org.openjdk.jmh:j...
    • 72447a6fe2aa50e02d46bfeee0a8451b47721d5b by @dykov: Add testcases
    • ce99062dc2ad16ab2b87cfd916dd92c897eaa097 by @dykov: Refactor '.zip' method: remove...
    • 42ba173cf278c33c6543d3e8ef8c526f424f4338 by @dykov: Merge branch 'master' into add...
    • f58f064059f8ccbfe41ce54a911284debdc71690 by @dykov: Refactor '.zip' method: remove...
    • c04ac587787970ff2310c1577d8bbc49996ef6d8 by @snyk-bot: fix: upgrade org.openjdk.jmh:j...
    • aa2ff4df10f9c288bff57d68df428c40f07f05d4 by @dykov: Merge branch 'master' into add...
    • c5edcd0235501acfc12d0ebb1b2623c6a6e75e68 by @dgroup: Merge branch 'master' into sny...
    • 57067de5d92ef3461326d46073b81c6f21f42c41 by @dgroup: Merge branch 'master' into sny...
    • 214713123deb1bfc5ac185736832ea2ed2b751b8 by @dykov: Refactor '.uniq' method: add i...
    • f1a9eedb350b48278bee0d8408f58106e02c52b8 by @dykov: Fix '.map' method
    • f0bbb0f2500f7d4241f15f8683dfd3b1b8a59b72 by @dykov: Transform stream param constru...
    • 7ad3f81c92e0eb5412d6e7f100457957f4c38876 by @dykov: Merge branch 'master' into add...
    • 85a2b53c7353c93095e05a17c4a022246a47af80 by @dykov: Edit readme.md
    • 82fcaa121d67de31379cb4985f8a2d0f5c2643b4 by @dykov: Refactoring null predicate cas...
    • af55c0ef85a2d54a5f5d0d1fa2d3737e4bdebcda by @snyk-bot: fix: upgrade org.openjdk.jmh:j...
    • d66ffc9382dd6a2ba65eccd11fcfb40524f687f8 by @dykov: Add Linked constructor with st...
    • 31406ccf79921ce3bcff547d7b748a605725e76d by @dykov: Merge branch 'master' into add...
    • and 63 more...

    Released by Rultor 1.69.1, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(May 8, 2021)

    See #60, release log:

    • 7bccd7ab44dbfa8e0024984915998d770217d25a by @dykov: Merge pull request #7 from dyk...
    • 3baccf985499343c4440f7717ac82af8a2577329 by @dykov: Merge branch 'master' into add...
    • 2f776165a6832221e224adfbc7e6a77582aaa0d3 by @dykov: Edit method descriptions
    • b3458b0d1beb97fbdd09a888b747ca55ee7ea592 by @dykov: Merge pull request #6 from dyk...
    • 4b00c8d499f02d937523e5c33bf8dd2a391cdc03 by @dykov: Edit method description
    • f8c07df6943fd266c539bd059e1aa2f4cc75325e by @dykov: Add '.next' method
    • ef57bdd3ab6f7b515d6dcf975c1830c1b05177d1 by @dykov: Fix testcase description
    • 24048de7f7a51c13abdeb00a07f35449ac346007 by @dykov: Merge pull request #5 from dyk...
    • 41c66f00c7fee285a0a914fe3acfbb44a2c04ba2 by @dykov: Merge branch 'master' into add...
    • 707d8e4cc7cf682b3ea085160c7b88cf65f44b61 by @dykov: Add testcase with negative siz...
    • bd5624128b6e87aed862a09f8029d146bda18e36 by @dykov: Merge pull request #4 from dyk...
    • 065e7e45384502a60948b4814893d0a9842012c8 by @dykov: Edit readme.md
    • b9c6932aa63bc37d80febc1b5c3d1695eab97530 by @dykov: Merge pull request #3 from dyk...
    • 3fd3a63428cee79f951acc66eb9e6f3cab264ab7 by @dykov: Optimize '.after' method
    • d48fd71dabd1aa68c51a4bbc4638c983bb7ba398 by @dykov: Merge pull request #2 from dyk...
    • b59e1905fc1842fbf8caf73f25f6410292820745 by @dykov: Merge branch 'master' into add...
    • cd0e1fad11ae253d50f722fa61841bd58f6666f9 by @dykov: Add 'noneMatch' test case
    • 46bdebdce7572cf29bc8faf151ba8919d9a8b30c by @dykov: Merge pull request #1 from dyk...
    • e7c58b1a78e58f9d62bd20ed1f6b8cc59aa7ecf8 by @dykov: Edit readme.md
    • 15a075e4d1acbf74caa10c0b62cc4a80c13deb33 by @dykov: Add '.after' method
    • and 8 more...

    Released by Rultor 1.69.1, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.3.1(Mar 29, 2021)

    See #51, release log:

    • ea33b79a30e6b2e30aa0e87347cd3a84b3b0ddaa by @smithros: Downgrade version of cactoos-m...
    • 9c3b424bac0536136d11f89c6aea08c805f2799e by @dgroup: Add missing cactoos examples

    Released by Rultor 1.69.1, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Mar 27, 2021)

    Full scope: https://github.com/dgroup/enumerable4j/milestone/3?closed=1

    See #48, release log:

    • c099210b9e4d91712c59fc16ffc412a8541f53a1 by @dgroup: #48: readme typo
    • 1bc6488764d91027b9b1cee2973d364bda01386b by @dgroup: #48: readme typo
    • ad9d03e8e0fb53ac0519924647a6f6a9194543e0 by @dgroup: #48: Up code coverage
    • 8f8bb6e068b6cc3d7dc46f9be711740d0f237d71 by @dgroup: #48: Add default method implem...
    • ddd586d180d9b2802f965d2742bacf7c853b7357 by @smithros: #49: Readme typo's fix
    • 552a9b137a4e5d557dfea19ee83ecad2834e2b80 by @smithros: #49: Added 'find' into readme....
    • 44f6c3eccf235d2a6a92d1cbde31613dfcfb9288 by @smithros: Merge remote-tracking branch '...
    • 1430ca1fa8ccbbbcc11c017939978ff01d830c70 by @smithros: #16: Refactored find method
    • 292f4d1e01f14d0d7c54eabcb8efc1405a7cc384 by @smithros: Merge branch 'master' into 16
    • 09a5099f38c9fe74ad6fc327a321264384669744 by @smithros: #16: Changed method signature ...
    • 87e2ab10b5ed029a123aac119a325dd2fb673f8b by @snyk-bot: fix: upgrade org.openjdk.jmh:j...
    • 68e7321fedb6029d9bbc142298b5555f240df8d0 by @smithros: #16: Fixed qulice unused depen...
    • 1e514a649199b64c0b00f7addf874f5f91435387 by @smithros: #16: Implemented 'find' method

    Released by Rultor 1.69.1, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Mar 20, 2021)

    See #45, release log:

    • d9188c49d1a3c34fcb537bb923c4208729db8d8d by @smithros: 15: Typo
    • 43c2290d257e54339cf863e1ffe5dd352b9a43bb by @smithros: 15: Implemented reject method
    • 8fa50a97ca22a9cb8869eb6fdfdb1a22b970dd5d by @snyk-bot: fix: upgrade org.llorllale:cac...
    • 2226b81179e0ee616b6525491b6fd594f2700bf3 by @dgroup: Update readme.md
    • 763a670399ed0a3751e86038edba7eb1d83a4f1d by @dgroup: Correct examples in readme
    • 9c8e00f7b66dc891993888994a254f94b291109f by @dgroup: #43: Run sonar and codecov if ...
    • be87b425a05d5a413912ab0d31ff06f3dea55cdb by @dgroup: #43: Run sonar and codecov if ...
    • 16b1ad5e2d5a98893241a05eb1a129133923f8de by @dgroup: #43: Move sonar and codecov to...
    • b919cdc2113cafb2af88a832c1ea2a43df8a5583 by @singhashutosh96: #29: Add .count * Implemented ...
    • 5597e3d28a6d63e755b709e3561079246c680dd3 by @dgroup: Add draft of eclipse-collectio...
    • f48ec02b6cfadee664f891be176a2bc65baa1543 by @smithros: #23: NoneTest fix
    • 5f228d8fcceff8517da45be1300ac8cd4759c065 by @smithros: #23: Added logic, when null pr...
    • 5919849f3d58ced2c212ebdb04ced43e71ab508c by @smithros: #17: Fix of 'map' method and r...
    • 9e182fc752b905b12cd9762d7d103f7f033849bb by @smithros: Merge branch 'master' into 17
    • c589bbdf61b2245c0d4b7f342127f0f3ef1ccbb5 by @smithros: Merge remote-tracking branch '...
    • e3eadc4a2aa7998abee4a1891fc41443fae6a087 by @smithros: #17: Refactored 'map' method i...
    • 1e4496635b03f3c45fc8ff10c86050ff3b99c6d8 by @dgroup: Update readme.md
    • 4e7b5836767788d6e7a1b6decf02e7d45167b6ab by @dgroup: Update readme.md

    Released by Rultor 1.69.1, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(Mar 8, 2021)

    Full scope: https://github.com/dgroup/enumerable4j/milestone/1?closed=1

    See #27, release log:

    • 6120e4ccd69d267f1fc4fcbfcc4f4b7d28309905 by @dgroup: #27: StagingRuleFailuresExcept...
    • ae1c944626f7c7e5e2c38d2b3ae81032c222b6fe by @dgroup: #27: gpg: signing failed: Not ...
    • 0a2c069782356b04a8e927463c32c1e5e90a1ae7 by @dgroup: #27: Correct mvn gpg configura...
    • 7977dddc6276b165247d92cfd054572f418c2c97 by @dgroup: #27: Correct gpg plugin
    • 21aad441e1637a01487df79147c04e8d1046f5ea by @dgroup: #27: Correct readme.md
    • 51e2d5783ee236d0880e4bf6443d5d1722d5adb8 by @dgroup: #27: The requested profile "os...
    • a68414c58996fb2eed2e3eb1a9b7f9110c93892a by @dgroup: #27: publish 0.1.0
    • c37e2373f7cf3ba6969c83e96c65fabeb9fef291 by @dgroup: #26: fix codacy issues
    • cb734f3b058736c712e6da94ca0a30ae20cf3d7b by @dgroup: #26: fix codacy issues
    • 834a9d5cbe439af7eb25dac1adb8901a31cce348 by @dgroup: #1: define methods in readme.m...
    • 50ea9bc0ae07fb140e2821291679106c6036d452 by @dgroup: Merge remote-tracking branch '...
    • dc5c102be3b1b90e97ce603c849e36482ecb3ee9 by @dgroup: #1: define methods in readme.m...
    • be9a526173641de578f8286c4cb0b6dd82045444 by @dgroup: Merge branch 'master' into 24
    • f039f4d9c13d6076bcaf321ad7c3a170c7ac421e by @dgroup: Merge remote-tracking branch '...
    • 70da9149022cbafdcaf87ee4d2c522e3dd66c606 by @dgroup: #24: @rultor's failure The env...
    • 04d0d831699467310d58bff2058342e1279cd0f9 by @dgroup: #24: Delete .java-version as i...
    • 1229785e3185c6913b51b96d2214228799c914d9 by @dgroup: #24: @rultor's failure The env...
    • e62b11450f251cc19a47fbe81412fbe31f0568c5 by @dgroup: #19: upgrade org.cactoos:cacto...
    • babcb20fbcbbda05bc682b6a2a8c6677853605f2 by @dgroup: #19: upgrade org.cactoos:cacto...
    • 4b0fcca4c710064da80d76c8a21ccbf2cb5e4bde by @dgroup: #20: upgrade org.llorllale:cac...
    • and 24 more...

    Released by Rultor 1.69.1, see build log

    Source code(tar.gz)
    Source code(zip)
Owner
Yurii Dubinka
Developer, team lead, technical manager, open-source contributor
Yurii Dubinka
Design patterns implemented in Java

Design patterns implemented in Java Read in different language : CN, KR, FR, TR, AR Introduction Design patterns are the best formalized practices a p

Ilkka Seppälä 79k Jan 2, 2023
Java EE 7 Samples

Java EE 7 Samples This workspace consists of Java EE 7 Samples and unit tests. They are categorized in different directories, one for each Technology/

JavaEE Samples 2.5k Dec 20, 2022
Solutions for some common algorithm problems written in Java.

Algorithms This repository contains my solution for common algorithms. I've created this repository to learn about algorithms and improve solutions to

Pedro Vicente Gómez Sánchez 2.8k Dec 30, 2022
Algorithms and Data Structures implemented in Java

Java : Algorithms and Data Structure The algorithms and data structures are implemented in Java. This is a collection of algorithms and data structure

Justin Wetherell 4.2k Jan 5, 2023
MCQs and coding questions solutions of Object-Oriented Programming java of coding ninjas

cn-java-sols (⌐■_■) Link to This repository Other similar repository of my friend Link ?? enjoy having full marks ?? ?? now answers avaible up to Stri

Sanyam Mahajan 11 Dec 27, 2022
Rework of html-java-dsl to work with newer Javas

java-html-dsl Example DSL for writing html in Java. Rework of benjiman/java-html-dsl to work with newer versions of Java This String doc = html(

Benji Weber 19 Jan 25, 2022
A toolchain for Minecraft: Java Edition that builds a workspace to interact with the game using the official mappings provided to the public by Mojang Studios.

VanillaGradle is a toolchain for Minecraft: Java Edition that provides a workspace to interact with the game using official mappings provided by Mojan

SpongePowered 75 Nov 22, 2022
Java 16 Features

Java 16 Features. Features are separated by package name.

Rahman Usta 9 Jan 7, 2022
Java Kampında derslerde yazılan projeler

nLayeredDemo JavaCampDay5Lesson https://www.youtube.com/watch?v=yaBPeS65vwM&ab_channel=EnginDemiro%C4%9F linkteki derste yapılan proje. Nortwind JavaC

Zeyneb Eda YILMAZ 10 Dec 14, 2021
Engin DEMIROG yotube java kamp HW

JavaBootCamp https://www.kodlama.io/courses/enrolled/1332369 Engin DEMIROG yotube javaBootCamp HW ve projeler Java & React Bootcamp (https://kodlama.i

Melik KARACA 8 Nov 13, 2022
Software Developer Training Camp (JAVA + REACT) works under the guidance of Engin Demiroğ

https://kodlama.io/p/yazilim-gelistirici-yetistirme-kampi2 [EN] Java_React-BootCamp Software Developer Training Camp (JAVA + REACT) works under the gu

Saba ÜRGÜP 18 Dec 24, 2022
A Java game Solitaire, made with JavaFX

Java Solitaire A game made with JavaFX Installation requirements: At least Java 11 installed. setup: 2.1. Intellij -> Open the file in the IDE and exe

Walter Alleyz 15 May 6, 2021
Bitcoin SV Library for Java

Introduction Overview Bitcoin4J is a Bitcoin library for the Java Language licensed under the Apache License 2.0. This library has been built in line

null 17 May 25, 2022
Repository for Bryn and Ethan's Java with MicroServices Batch

210607-FeederProgram This repository houses examples and environment setup for the Revature feeder program beginning on 6/7/2021 Environment Setup Gui

Bryn Portella 17 May 22, 2022
http://kodlama.io "Java & React Bootcamp" up to date Lectures and Homeworks.

Java & React Bootcamp (https://kodlama.io/) Lectures Lecture 1 intro Lecture 2 oopIntro homework Lecture 3 oopIntro2 inheritance inheritance2 homework

Karcan Ozbal 237 Dec 29, 2022
Códigos do Bootcamp Java Básico DIO

Curso Java Básico Digital Innovation One https://digitalinnovation.one Tive a honra de fazer parceria com o pessoal da Digital Innovation One, com doi

Nicole Bidigaray 3 Jul 28, 2021
Slicer4J is an accurate, low-overhead dynamic slicer for Java programs.

Slicer4J This repository hosts Slicer4J, an accurate, low-overhead dynamic slicer for Java programs. Slicer4J automatically generates a backward dynam

The Reliable, Secure, and Sustainable Software Lab 25 Dec 19, 2022
Ejercicios de CodeSignal resueltos en Java

CodeSignal Ejercicios resueltos en Java de la plataforma CodeSignal. Crear el proyecto con Maven Abrimos un terminal y ejecutamos el siguiente comando

Desarrollo de Interfaces (DAD) 3 Sep 21, 2021
Java Coding Practice

Java Coding Practice I have solved many problems in this, Some of them are Median of Two Sorted Arrays Merge k Sorted Lists First Missing Positive Val

null 10 Nov 12, 2021