commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (COLLECTIONS-707) New collection type: PrefixMap
Date Fri, 30 Nov 2018 22:06:00 GMT


ASF GitHub Bot commented on COLLECTIONS-707:

GitHub user nielsbasjes opened a pull request:

    [COLLECTIONS-707] Added PrefixMap - WIP!

    First version of the PrefixMap implementation.
    I consider this a work in progress and expect various review comments.
    I have included two implementations of this interface:
    - StringPrefixMap where any String can be used as prefix.
    - ASCIIPrefixMap where only readable ASCII is allowed as the key. This restriction cuts
the retrieval time in half and as such may be useful where speed is very important.
    About the tests:
    - I have to add more tests regarding special characters in the Prefix.
    - Right now there are also a few very simple performance tests to verify the lookup speed.
It may be needed to remove these before committing. 

You can merge this pull request into a Git repository by running:

    $ git pull COLLECTIONS-707-PrefixMap

Alternatively you can review and apply these changes as the patch at:

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #63
commit aab3af5b3eba732b12d4a87a093a881d89723a56
Author: Niels Basjes <nbasjes@...>
Date:   2018-11-30T21:59:12Z

    [COLLECTIONS-707] Added PrefixMap


> New collection type: PrefixMap
> ------------------------------
>                 Key: COLLECTIONS-707
>                 URL:
>             Project: Commons Collections
>          Issue Type: Improvement
>            Reporter: Niels Basjes
>            Priority: Major
> I was working on a project ( ) where I ran into
the situation that I needed a type of collection that was not yet present in either Java or
> So I wrote my own implementation and I think this may be a useful addition to commons-collections.
> At this point we have
> - the Map that allows retrieval of a single value based on an exact key.
> - the Trie that allows retrieval of a set of values based where the keys all start with
the same prefix.
> What I needed a structure where it holds the prefixes and associated values and I want
to retrieve the 'best matching prefix' for a given input.
> To illustrate what I mean using the original use case:
> PrefixMap<String> prefixMap = new ASCIIPrefixMap<>(false); // false == match
case insensitive
> prefixMap.put("SM-", "Samsung");
> prefixMap.put("Mi-", "Xiaomi");
> prefixMap.getLongestMatch("SM-1234"); // ---> "Samsung"

This message was sent by Atlassian JIRA

View raw message