Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#2417 Explore reimplementing HashMap as CHAMP (Compressed Hash-Array Mapped Prefix-tree) #2745

Open
wants to merge 175 commits into
base: master
Choose a base branch
from

Commits on Jun 18, 2022

  1. Configuration menu
    Copy the full SHA
    95ea776 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b651aa5 View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2022

  1. Refactors SetMixin.

    wrandelshofer committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    3509123 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    42a096b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5f6cd8c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    52a232f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0d164b3 View commit details
    Browse the repository at this point in the history
  6. Adds JMH benchmarks.

    wrandelshofer committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    1940f13 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    7a01568 View commit details
    Browse the repository at this point in the history
  8. Adds benchmarks.

    wrandelshofer committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    8b132ba View commit details
    Browse the repository at this point in the history
  9. Adds benchmarks.

    wrandelshofer committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    5330aaf View commit details
    Browse the repository at this point in the history
  10. Updates readme file.

    wrandelshofer committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    4dcd7d1 View commit details
    Browse the repository at this point in the history
  11. Updates readme file.

    wrandelshofer committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    c7d6f5b View commit details
    Browse the repository at this point in the history
  12. Updates readme file.

    wrandelshofer committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    3a3c9df View commit details
    Browse the repository at this point in the history
  13. Updates readme file.

    wrandelshofer committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    227f2ba View commit details
    Browse the repository at this point in the history
  14. Updates readme file.

    wrandelshofer committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    605cc89 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    0402595 View commit details
    Browse the repository at this point in the history
  16. Updates readme.

    wrandelshofer committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    8eb395c View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2022

  1. Modularity: Moves all CHAMP classes into a separate package. Cracks v…

    …avr open for extensibility.
    wrandelshofer committed Jun 23, 2022
    Configuration menu
    Copy the full SHA
    809d4a3 View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2022

  1. Configuration menu
    Copy the full SHA
    097ebe5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    270a0da View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0de6e71 View commit details
    Browse the repository at this point in the history
  4. Fixes clear()-method.

    wrandelshofer committed Aug 5, 2022
    Configuration menu
    Copy the full SHA
    2f587de View commit details
    Browse the repository at this point in the history
  5. Adds javadoc comments.

    wrandelshofer committed Aug 5, 2022
    Configuration menu
    Copy the full SHA
    85c6ab2 View commit details
    Browse the repository at this point in the history
  6. Reduces size of code.

    wrandelshofer committed Aug 5, 2022
    Configuration menu
    Copy the full SHA
    3d5633e View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2022

  1. Renames interface Sequenced to SequencedKey.

    Improves javadoc.
    wrandelshofer committed Aug 6, 2022
    Configuration menu
    Copy the full SHA
    da380ea View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b90c96e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    dcd0db4 View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2022

  1. Configuration menu
    Copy the full SHA
    9fcdd9a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    82392e0 View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2023

  1. Merge pull request #1 from vavr-io/master

    Merge latest changes from vavr project.
    wrandelshofer committed Jan 24, 2023
    Configuration menu
    Copy the full SHA
    a0919e8 View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2023

  1. Configuration menu
    Copy the full SHA
    598ebcc View commit details
    Browse the repository at this point in the history

Commits on Apr 2, 2023

  1. Configuration menu
    Copy the full SHA
    bf9f662 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    71cf364 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6569c67 View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2023

  1. Add benchmark results.

    wrandelshofer committed Apr 3, 2023
    Configuration menu
    Copy the full SHA
    3b0961e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2c95045 View commit details
    Browse the repository at this point in the history

Commits on Apr 4, 2023

  1. Configuration menu
    Copy the full SHA
    8b7d7b2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cb5fdb8 View commit details
    Browse the repository at this point in the history
  3. Improve readme.

    wrandelshofer committed Apr 4, 2023
    Configuration menu
    Copy the full SHA
    3e8dcfd View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2023

  1. Configuration menu
    Copy the full SHA
    e07b9e2 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'vavr/master'

    # Conflicts:
    #	README.md
    wrandelshofer committed Apr 21, 2023
    Configuration menu
    Copy the full SHA
    fee08d0 View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2023

  1. Revert changes in readme file.

    Improve javadoc of JMH benchmarks.
    Update to 'org.scala-lang:scala-library:2.13.11-M1'.
    wrandelshofer committed Apr 22, 2023
    Configuration menu
    Copy the full SHA
    24c6d5e View commit details
    Browse the repository at this point in the history
  2. Rename champ collection classes to HashMap, LinkedHashMap and so on.

    Lump all utility classes into a single class, because Java 8 does not support the notion of non-exported packages.
    wrandelshofer committed Apr 22, 2023
    Configuration menu
    Copy the full SHA
    bc03e53 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2023

  1. Make all tests work.

    wrandelshofer committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    6dcf746 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4b19526 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8431a50 View commit details
    Browse the repository at this point in the history
  4. Remove JMH benchmarks.

    wrandelshofer committed Apr 23, 2023
    Configuration menu
    Copy the full SHA
    c328246 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    5f9df6c View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1c090e2 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    2d7379c View commit details
    Browse the repository at this point in the history

Commits on Apr 29, 2023

  1. WIP: Replace internal representation of HashSet by a CHAMP trie.

    Changes:
    
    build.gradle
    - Temporarily raises Java version from 8 to 17, because we are porting code from JHotDraw 8 which is on 17. We intend to change this back to Java 8.
    
    ChampAbstractChampSpliterator.java,
    ChampAbstractTransientChampSet.java,
    ChampBitmapIndexedNode.java,
    ChampChangeEvent.java,
    ChampHashCollisionNode.java,
    ChampIdentityObject.java,
    ChampIteratorAdapter.java,
    ChampListHelper.java,
    ChampMutableBitmapIndexedNode.java,
    ChampMutableHashCollisionNode.java,
    ChampNode.java,
    ChampNodeFactory.java,
    ChampSequencedData.java,
    ChampSequencedElement.java,
    ChampSequencedEntry.java,
    ChampSequencedVectorSpliterator.java,
    ChampSpliterator.java,
    ChampTombstone.java
    - Classes with prefix "Champ" provide the CHAMP trie data structure and operations that act on it.
    - Maybe we lump them all together into a ChampTrie class (similar to BitMappedTrie). However, for now, it is much easier to have separate source files for each class.
    
    HashSet.java
    - Replaces its internal representation from HashArrayMappedTrie to a CHAMP trie.
    - This class extends from ChampBitmapIndexedNode rather than using composition. This helps to reduce memory usage for small collections (we save 16 bytes), and this improves the performance (we save one level of indirection).
    wrandelshofer committed Apr 29, 2023
    Configuration menu
    Copy the full SHA
    7edee7e View commit details
    Browse the repository at this point in the history
  2. WIP: Replace internal representation of HashSet by a CHAMP trie.

    Changes:
    
    HashSet.java
    - Override spliterator().
    wrandelshofer committed Apr 29, 2023
    Configuration menu
    Copy the full SHA
    3517e11 View commit details
    Browse the repository at this point in the history

Commits on Apr 30, 2023

  1. Configuration menu
    Copy the full SHA
    1889bfb View commit details
    Browse the repository at this point in the history
  2. WIP: Replace internal representation of HashMap by a CHAMP trie.

    Changes:
    
    HashMap.java
    - Replaces its internal representation from HashArrayMappedTrie to a CHAMP trie.
    
    ChampChangeEvent.java
    - Adds method isAdded().
    
    HashSet.java
    - Adds javadoc.
    - Renames method updateFunction to updateElement.
    
    HashMapTest.java
    - Changes the expected result of 2 unit tests. I believe, that the test expectations were wrong.
    wrandelshofer committed Apr 30, 2023
    Configuration menu
    Copy the full SHA
    a549389 View commit details
    Browse the repository at this point in the history

Commits on May 1, 2023

  1. Configuration menu
    Copy the full SHA
    6c1b308 View commit details
    Browse the repository at this point in the history
  2. WIP: Replace internal representation of LinkedHashMap by a CHAMP trie.

    WIP: Improve performance with transience.
    wrandelshofer committed May 1, 2023
    Configuration menu
    Copy the full SHA
    9ea6ea0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3bf4c06 View commit details
    Browse the repository at this point in the history
  4. Rename 'reversed' by 'reverse' where appropriate.

    Improve performance of Collections.retainAll.
    wrandelshofer committed May 1, 2023
    Configuration menu
    Copy the full SHA
    a091c97 View commit details
    Browse the repository at this point in the history

Commits on May 2, 2023

  1. Add benchmarks.

    wrandelshofer committed May 2, 2023
    Configuration menu
    Copy the full SHA
    3bba2c5 View commit details
    Browse the repository at this point in the history
  2. Add benchmarks.

    There appears to be a bug in transient 'update' methods in CHAMP trie nodes, because it is not faster than non-transient 'update'.
    Transient 'remove' in CHAMP trie nodes is faster than the non-transient 'remove' - so that seems to be correct.
    wrandelshofer committed May 2, 2023
    Configuration menu
    Copy the full SHA
    52eb375 View commit details
    Browse the repository at this point in the history

Commits on May 3, 2023

  1. Add more benchmarks.

    wrandelshofer committed May 3, 2023
    Configuration menu
    Copy the full SHA
    6bb9ee4 View commit details
    Browse the repository at this point in the history

Commits on May 7, 2023

  1. Configuration menu
    Copy the full SHA
    58ffd28 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9d61c8c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    81f05bb View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    32a3db1 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    45f16fe View commit details
    Browse the repository at this point in the history

Commits on May 8, 2023

  1. Configuration menu
    Copy the full SHA
    e81af7f View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'origin/champ-dev'

    # Conflicts:
    #	build.gradle
    #	src/main/java/io/vavr/collection/HashMap.java
    #	src/main/java/io/vavr/collection/HashSet.java
    #	src/main/java/io/vavr/collection/LinkedHashMap.java
    #	src/main/java/io/vavr/collection/LinkedHashSet.java
    wrandelshofer committed May 8, 2023
    Configuration menu
    Copy the full SHA
    db341e5 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    296b659 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2023

  1. Configuration menu
    Copy the full SHA
    f8f9e38 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f8cae40 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9d7fbf7 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    89bd244 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    c6d913f View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    d54b89a View commit details
    Browse the repository at this point in the history
  7. Remove JMH benchmarks.

    wrandelshofer committed May 10, 2023
    Configuration menu
    Copy the full SHA
    c0e0066 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    5317e10 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    843dd55 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    23f8b64 View commit details
    Browse the repository at this point in the history
  11. Remove HAMT.

    wrandelshofer committed May 10, 2023
    Configuration menu
    Copy the full SHA
    86eb888 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    77a4df8 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    f07ef4a View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    50d0b3f View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    def1e0c View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    7e2538c View commit details
    Browse the repository at this point in the history
  17. Revert changes in file.

    wrandelshofer committed May 10, 2023
    Configuration menu
    Copy the full SHA
    06bc0fa View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    9b1ca5c View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    b62562a View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    b058637 View commit details
    Browse the repository at this point in the history
  21. Lump classes together.

    wrandelshofer committed May 10, 2023
    Configuration menu
    Copy the full SHA
    0ca19b7 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    ff175f3 View commit details
    Browse the repository at this point in the history

Commits on May 12, 2023

  1. Toggle case of licenses. The disclaimer has to be 'conspicuous' - and…

    … therefore has to be upper case.
    wrandelshofer committed May 12, 2023
    Configuration menu
    Copy the full SHA
    e12320c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9b4a181 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c37f86c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a1e8fbf View commit details
    Browse the repository at this point in the history
  5. Simplify code.

    wrandelshofer committed May 12, 2023
    Configuration menu
    Copy the full SHA
    e4b35b3 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2024

  1. Configuration menu
    Copy the full SHA
    4948892 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0bb7aca View commit details
    Browse the repository at this point in the history
  3. Refactors SetMixin.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    e90a1b0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a3ca14d View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    275f3d3 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    8318482 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    ae0a675 View commit details
    Browse the repository at this point in the history
  8. Adds JMH benchmarks.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    ed1f46a View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    f979d61 View commit details
    Browse the repository at this point in the history
  10. Adds benchmarks.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    19ee2a9 View commit details
    Browse the repository at this point in the history
  11. Adds benchmarks.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    dbac9f6 View commit details
    Browse the repository at this point in the history
  12. Updates readme file.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    6707c4b View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    9501dbf View commit details
    Browse the repository at this point in the history
  14. Modularity: Moves all CHAMP classes into a separate package. Cracks v…

    …avr open for extensibility.
    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    8a8908f View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    9490ca2 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    c90466d View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    e2890c8 View commit details
    Browse the repository at this point in the history
  18. Fixes clear()-method.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    04b9297 View commit details
    Browse the repository at this point in the history
  19. Adds javadoc comments.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    4a1a24f View commit details
    Browse the repository at this point in the history
  20. Reduces size of code.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    7497033 View commit details
    Browse the repository at this point in the history
  21. Renames interface Sequenced to SequencedKey.

    Improves javadoc.
    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    9a5c180 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    469b779 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    376a00d View commit details
    Browse the repository at this point in the history
  24. Configuration menu
    Copy the full SHA
    c38c66e View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    8802cb7 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    8360dbd View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    257646a View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    c173473 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    95470d9 View commit details
    Browse the repository at this point in the history
  30. Add benchmark results.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    b22032f View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    3712df5 View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    793ebbd View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    b2ad2a5 View commit details
    Browse the repository at this point in the history
  34. Revert changes in readme file.

    Improve javadoc of JMH benchmarks.
    Update to 'org.scala-lang:scala-library:2.13.11-M1'.
    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    a172f49 View commit details
    Browse the repository at this point in the history
  35. Rename champ collection classes to HashMap, LinkedHashMap and so on.

    Lump all utility classes into a single class, because Java 8 does not support the notion of non-exported packages.
    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    dfb15f6 View commit details
    Browse the repository at this point in the history
  36. Make all tests work.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    6e03c52 View commit details
    Browse the repository at this point in the history
  37. Remove JMH benchmarks.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    41fa05e View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    5a51719 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    7cf7b6e View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    b175889 View commit details
    Browse the repository at this point in the history
  41. WIP: Replace internal representation of HashSet by a CHAMP trie.

    Changes:
    
    build.gradle
    - Temporarily raises Java version from 8 to 17, because we are porting code from JHotDraw 8 which is on 17. We intend to change this back to Java 8.
    
    ChampAbstractChampSpliterator.java,
    ChampAbstractTransientChampSet.java,
    ChampBitmapIndexedNode.java,
    ChampChangeEvent.java,
    ChampHashCollisionNode.java,
    ChampIdentityObject.java,
    ChampIteratorAdapter.java,
    ChampListHelper.java,
    ChampMutableBitmapIndexedNode.java,
    ChampMutableHashCollisionNode.java,
    ChampNode.java,
    ChampNodeFactory.java,
    ChampSequencedData.java,
    ChampSequencedElement.java,
    ChampSequencedEntry.java,
    ChampSequencedVectorSpliterator.java,
    ChampSpliterator.java,
    ChampTombstone.java
    - Classes with prefix "Champ" provide the CHAMP trie data structure and operations that act on it.
    - Maybe we lump them all together into a ChampTrie class (similar to BitMappedTrie). However, for now, it is much easier to have separate source files for each class.
    
    HashSet.java
    - Replaces its internal representation from HashArrayMappedTrie to a CHAMP trie.
    - This class extends from ChampBitmapIndexedNode rather than using composition. This helps to reduce memory usage for small collections (we save 16 bytes), and this improves the performance (we save one level of indirection).
    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    e77718a View commit details
    Browse the repository at this point in the history
  42. WIP: Replace internal representation of HashSet by a CHAMP trie.

    Changes:
    
    HashSet.java
    - Override spliterator().
    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    2f94b88 View commit details
    Browse the repository at this point in the history
  43. Configuration menu
    Copy the full SHA
    ceb2259 View commit details
    Browse the repository at this point in the history
  44. WIP: Replace internal representation of HashMap by a CHAMP trie.

    Changes:
    
    HashMap.java
    - Replaces its internal representation from HashArrayMappedTrie to a CHAMP trie.
    
    ChampChangeEvent.java
    - Adds method isAdded().
    
    HashSet.java
    - Adds javadoc.
    - Renames method updateFunction to updateElement.
    
    HashMapTest.java
    - Changes the expected result of 2 unit tests. I believe, that the test expectations were wrong.
    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    6bbc1fd View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    0e19746 View commit details
    Browse the repository at this point in the history
  46. WIP: Replace internal representation of LinkedHashMap by a CHAMP trie.

    WIP: Improve performance with transience.
    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    f9616e6 View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    36070f4 View commit details
    Browse the repository at this point in the history
  48. Rename 'reversed' by 'reverse' where appropriate.

    Improve performance of Collections.retainAll.
    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    5c31e18 View commit details
    Browse the repository at this point in the history
  49. Add benchmarks.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    f1535f0 View commit details
    Browse the repository at this point in the history
  50. Add benchmarks.

    There appears to be a bug in transient 'update' methods in CHAMP trie nodes, because it is not faster than non-transient 'update'.
    Transient 'remove' in CHAMP trie nodes is faster than the non-transient 'remove' - so that seems to be correct.
    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    74b3d72 View commit details
    Browse the repository at this point in the history
  51. Add more benchmarks.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    43b7807 View commit details
    Browse the repository at this point in the history
  52. Configuration menu
    Copy the full SHA
    fd006a0 View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    d9cb827 View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    a0df14c View commit details
    Browse the repository at this point in the history
  55. Configuration menu
    Copy the full SHA
    cc67b49 View commit details
    Browse the repository at this point in the history
  56. Configuration menu
    Copy the full SHA
    1a2505d View commit details
    Browse the repository at this point in the history
  57. Configuration menu
    Copy the full SHA
    196e584 View commit details
    Browse the repository at this point in the history
  58. Configuration menu
    Copy the full SHA
    0e390bb View commit details
    Browse the repository at this point in the history
  59. Configuration menu
    Copy the full SHA
    5533877 View commit details
    Browse the repository at this point in the history
  60. Configuration menu
    Copy the full SHA
    56178a6 View commit details
    Browse the repository at this point in the history
  61. Configuration menu
    Copy the full SHA
    fc68b7f View commit details
    Browse the repository at this point in the history
  62. Configuration menu
    Copy the full SHA
    8126cf4 View commit details
    Browse the repository at this point in the history
  63. Remove JMH benchmarks.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    8cd3e25 View commit details
    Browse the repository at this point in the history
  64. Configuration menu
    Copy the full SHA
    bfb10c8 View commit details
    Browse the repository at this point in the history
  65. Configuration menu
    Copy the full SHA
    8ea8a4e View commit details
    Browse the repository at this point in the history
  66. Configuration menu
    Copy the full SHA
    c4e3a36 View commit details
    Browse the repository at this point in the history
  67. Configuration menu
    Copy the full SHA
    4658d2e View commit details
    Browse the repository at this point in the history
  68. Configuration menu
    Copy the full SHA
    83ad812 View commit details
    Browse the repository at this point in the history
  69. Revert changes in file.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    2bb42b3 View commit details
    Browse the repository at this point in the history
  70. Configuration menu
    Copy the full SHA
    a039c3a View commit details
    Browse the repository at this point in the history
  71. Lump classes together.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    d0a396e View commit details
    Browse the repository at this point in the history
  72. Toggle case of licenses. The disclaimer has to be 'conspicuous' - and…

    … therefore has to be upper case.
    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    83d002a View commit details
    Browse the repository at this point in the history
  73. Configuration menu
    Copy the full SHA
    fbd2d2d View commit details
    Browse the repository at this point in the history
  74. Configuration menu
    Copy the full SHA
    ae03601 View commit details
    Browse the repository at this point in the history
  75. Configuration menu
    Copy the full SHA
    6625007 View commit details
    Browse the repository at this point in the history
  76. Simplify code.

    wrandelshofer committed Aug 30, 2024
    Configuration menu
    Copy the full SHA
    516628f View commit details
    Browse the repository at this point in the history
  77. Configuration menu
    Copy the full SHA
    54e0c28 View commit details
    Browse the repository at this point in the history
  78. Configuration menu
    Copy the full SHA
    e235c13 View commit details
    Browse the repository at this point in the history