https://github.com/protobufel/multikeymapjava
Java 8 implementation of the multi-key map. It behaves like a regular generic Map with the additional ability of getting its values by any combination of partial keys.
https://github.com/protobufel/multikeymapjava
gradle java-8 library multikey-map
Last synced: about 2 months ago
JSON representation
Java 8 implementation of the multi-key map. It behaves like a regular generic Map with the additional ability of getting its values by any combination of partial keys.
- Host: GitHub
- URL: https://github.com/protobufel/multikeymapjava
- Owner: protobufel
- License: apache-2.0
- Created: 2017-06-06T12:12:10.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-11-24T00:08:37.000Z (over 8 years ago)
- Last Synced: 2025-06-04T05:54:38.283Z (about 1 year ago)
- Topics: gradle, java-8, library, multikey-map
- Language: Java
- Homepage:
- Size: 286 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.org/protobufel/multikeymapjava)
[](https://codecov.io/gh/protobufel/multikeymapjava)
[](https://search.maven.org/#search%7Cga%7C1%7Ca%3A%22multikeymapjava%22)
# MultiKeyMap Java Implementation #
Java 8 implementation of the multi-key map. It behaves like a regular generic Map with the additional ability of getting its values
by any combination of partial keys. For example, one can add any value with the complex key {"Hello", "the", "wonderful", "World!"} ,
and then query by any sequence of subkeys like {"wonderful", "Hello"}. In addition, you can query by a mixture of some
any-position-sub-keys and positional sub-keys, as in the following example:
```java
MultiKeyMap, String> map = MultiKeyMaps.newMultiKeyMap();
// add a record
map.put(Arrays.asList("Hello", ",", "the", "wonderful", "world"), "You found me!");
// or copy some data from the compatible Map
Map, String> dict = new HashMap<>();
dict.put(Arrays.asList("okay", "I", "am", "here"), "or there!");
dict.put(Arrays.asList("okay", "I", "am", "not", "here"), "for sure!");
// adding the data from another Map or MultiKeyMap
map.putAll(dict);
// MultiKeyMap interface extends Map, and also adds get{FullKeys|Values|Entries}ByPartialKey
// methods of its own
String exactMatch = map.get(Arrays.asList("okay", "I", "am", "here"));
if (exactMatch != null) {
System.out.println(String.format(
"This is a regular Map method, looking for exact full key. Let's see the actual value: %s",
exactMatch));
}
// lets look by partial key anywhere within the full key (any sequence in any order of some
// sub-keys of the original full key we're looking for)
// should be 1 record with value = 'for sure!'. Let's see the actual one:
map.getValuesByPartialKey(Arrays.asList("not", "I")).forEach(System.out::println);
// lets look by partial key, wherein some sub-keys are looked at the particular 0-based
// positions ( >= 0), and others anywhere ( < 0)
// should be 1 record with value = 'or there!'. Let's see the actual one:
map.getValuesByPartialKey(Arrays.asList("here", "I", "am"), Arrays.asList(3, -1, -1))
.forEach(System.out::println);
map.clear();
// Happy using!
```
### For more see the [JavaDoc Documentation](https://protobufel.github.io/multikeymapjava/javadoc/ "JavaDoc and more").
Happy coding,
David Tesler