`
lucky_xingxing
  • 浏览: 119869 次
  • 性别: 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);这句话很耗性能。已经循环遍历了一次,这句更没必要了。

相关推荐

    SimpleCache:用Java实现的缓存框架,使用HashMap进行存储,你可以实现Cache和CacheFactoryStrategy来自定义你的缓存实现逻辑

    SimpleCacheA Cache framework for java and android application, objects are store in key-value pair in memory,value can be any java object like String, List, Map etc. you can define your store logic ...

    腾讯校园招聘笔试题技术类搜搜PHP笔试题.pdf

    cacheMap.get(key).value = value; } else { if (lruQueue.size() &gt;= capacity) { Key oldestKey = lruQueue.poll().key; cacheMap.remove(oldestKey); } Node newNode = new Node(key, value); lruQueue....

    java简答题总结pdf文档

    HashMap的key和value都允许null,Hashtable和ConcurrentHashMap不允许。Hashtable保证线程安全的方式是通过给整张散列表加锁,ConcurrentHashMap保证线程安全的方式是采用分段锁机制(如果多线程并发访问的是不同段...

    Redis 实例 教程

    在Unix-like系统中,通过`redis-server`启动。 ### 3. Redis客户端 本教程关注的是Java客户端,Jedis是常用的Redis Java客户端库。你需要在项目中添加Jedis的依赖,然后可以通过创建Jedis实例连接到Redis服务器。 ...

    java大数据内容_5Mapreduce、数据挖掘

    1. **Map阶段**:从输入的行中取出访问日期(从访问时间里面处理出来,注意为了做到排序输出此处必须得使用时间戳格式,而不能用传统的format格式)以及请求url地址(去除host部分)作为key,来源url作为value。...

    ibatis笔记

    ibatis消除了几乎所有的JDBC对象操作,提供了一个将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)与数据库之间进行映射的简便方法。 #### 二、配置文件解析 ##### 1. SqlMapConfig.xml 配置文件 该...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    (1)针对多窗口类浏览器模式问题,指出并分析了该问题存在的原因,利用Activity的运行机制,通过Fragment栈对主要模块的Webview进行管理,实现对不同模块之间切换的控制。 (2)针对跨域数据交互问题,指出并分析了...

    jsp简单自定义标签的forEach遍历及转义字符示例.docx

    ${str.key} ----- ${str.value} ${strs}"&gt; ${str} ``` #### 三、转义字符处理 在JSP中,有时候需要处理特殊字符,例如HTML标签、引号等。为了正确显示这些特殊字符,我们需要在输出之前对其进行...

Global site tag (gtag.js) - Google Analytics