You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/11/30 22:06:00 UTC

[jira] [Commented] (COLLECTIONS-707) New collection type: PrefixMap

    [ https://issues.apache.org/jira/browse/COLLECTIONS-707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16705332#comment-16705332 ] 

ASF GitHub Bot commented on COLLECTIONS-707:
--------------------------------------------

GitHub user nielsbasjes opened a pull request:

    https://github.com/apache/commons-collections/pull/63

    [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 https://github.com/nielsbasjes/commons-collections COLLECTIONS-707-PrefixMap

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

    https://github.com/apache/commons-collections/pull/63.patch

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 <nb...@...>
Date:   2018-11-30T21:59:12Z

    [COLLECTIONS-707] Added PrefixMap

----


> New collection type: PrefixMap
> ------------------------------
>
>                 Key: COLLECTIONS-707
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-707
>             Project: Commons Collections
>          Issue Type: Improvement
>            Reporter: Niels Basjes
>            Priority: Major
>
> I was working on a project ( https://github.com/nielsbasjes/yauaa ) where I ran into the situation that I needed a type of collection that was not yet present in either Java or commons-collections.
> 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
(v7.6.3#76005)