`
lucky_xingxing
  • 浏览: 118060 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

HashMap 通过Key进行like匹配查找value

    博客分类:
  • java
阅读更多

 

import java.util.*;

 

/**

 * Created by Administrator on 2014/5/29.

 */

public class LikeHashMap<K,V> extends HashMap<K,V> {

 

    public List<V> getValues(Object key) {

        List<V> values = new ArrayList<V>();

        K [] keys = null;

        Set<K> set = this.keySet();

        keys  = (K [])set.toArray();

        Arrays.sort(keys);

        for(int i = 0 ;i < keys.length;i++){

            if(keys[i].toString().indexOf(key.toString()) == -1 && values.size() <1){

                continue;

            }else if(keys[i].toString().indexOf(key.toString()) != -1 ){

                values.add(this.get(keys[i]));

            }else{

                break;

            }

        }

        return values;

    }

 

 

    public static void main(String[] args) {

        LikeHashMap<String,String> map = new LikeHashMap<String, String>();

        for (int i = 0; i < 100000; i++) {

            if(i%2 == 0){

                map.put("B_"+i, "BBBBB"+i);

            }else{

                map.put("A_"+i, "AAAAAA"+i);

            }

        }

        long time=System.currentTimeMillis();

        System.out.println(map.getValues("ca").size());

        System.out.println(System.currentTimeMillis()-time);

    }

}

 

0
2
分享到:
评论
2 楼 zhuchao_ko 2014-05-29  
Arrays.sort(keys);性能差。。。
你有强迫症哦。
1 楼 风云无浪 2014-05-29  
这种在通过like查找的时候,和list是一样的。HashMap的目的就是为了在get的时候提高速度,如果在get的时候和list一样,为什么还要用HashMap呢?
并且Arrays.sort(keys);这句话很耗性能。已经循环遍历了一次,这句更没必要了。

相关推荐

    HashMap通过VALUE反向求KEY的方法

    HashMap中的值是成对地放置的,即VALUE-KEY.因此我们一般在MAP中取出数据时得根据KEY来取出VALUE.但若我们想出VALUE值,但却不知对应地KEY,这时我们就得先遍历VALUE值,找出对应地KEY值,再根据KEY值取出VALUE值

    简单的key value hashmap

    简单的hashmap key、value方便以后直接用。

    HashMap根据value获取key值

    Map集合的特性:一个key值对应一个value值,key值保持着唯一性,而插入的键值对相同key值会发生覆盖原key值对应的value值。 Map集合中一个key对应一个value,但是一个相同的value值可以对应多个key值 下面我们来根据...

    Hashmap 通过对VALUE排序 源代码

    NULL 博文链接:https://gghaomm.iteye.com/blog/1754487

    HashMap和链表的查找效率比较

    工程(VS2013)主要构造了HashMap和list集合,通过查找集合中的元素对两者的效率进行比较

    java HashMap通过value反查key的代码示例

    本文讲解了java HashMap通过value反查key的方法,直接提供代码供大家参考使用

    java程序员面试题

    HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。 HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 Hashtable继承自Dictionary类...

    HashMap原理.docx

    HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改HashMap是非synchronized,所以HashMap很快...

    HashMap面试总结.docx

    HashMap是一个存储key-value的键值对集合,每一个元素都是一个Entry,这些键值对分散在数组当中。 你为什么要用HashMap? 1.解决问题需要的数据结构是一种键值对的数据结构 2.HashMap是线程不安全的,其速度比较快 3....

    Java用自定义的类作为HashMap的key值实例

    下面小编就为大家带来一篇Java用自定义的类作为HashMap的key值实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    MATLAB哈希映射实现_hashmap_algorithm

    get(key) -&gt; get value associated with key set(key,value) -&gt; set new element in map by key and value delete(key) -&gt; delete entry by key has(key) -&gt; Returns true/false based on whether the map contains ...

    HashMap&ConcurrentHashMap.key

    HashMap& ConcurrentHashMap 深度解析

    hashmap 实例

    hashmap实例 hashmap实例hashmap实例hashmap实例

    HashMap介绍和使用

    HashMap介绍和使用

    HashMap如何添加元素详解

    map接口是一个双边队列,拥有key,value两个属性,其中key在存储的集合中不允许重复,value可以重复。 HashMap特点 存储结构在jdk1.7当中是数组加链表的结构,在jdk1.8当中改为了数组加链表加红黑树的结构。 HashMap...

    hashmap面试题_hashmap_

    hashmap相关的面试题

    HASHMAP排序功能描述

    HASHMAP排序,对一个无序以KEY为数字的MAP进行排序,比较简单操作

    HashMap-面试必过

    12.如果使用Object作为HashMap的Key,应该怎么办呢? 13.HashMap为什么不直接使用hashCode()处理后的哈希值直接作为table的下标? 14.HashMap 的长度为什么是2的幂次方? 15.HashMap 与 HashTable 有什么区别? 16....

    java中HashMap详解

    HashMap内部使用哈希表来实现,通过将键映射到哈希表中的一个位置来快速查找和插入元素。 HashMap的主要特点是: 非线程安全:如果多个线程同时访问同一个HashMap实例,可能会导致数据不一致的问题。因此,在使用...

    C语言实现hashMap

    C语言实现hashMap,包含创建hashMap、插入hashMap、查找hashMap、删除hashMap,已经若干经典的hash函数。文章链接:https://blog.csdn.net/sxf1061700625/article/details/109594495

Global site tag (gtag.js) - Google Analytics