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

该博客介绍了一个名为LikeHashMap的类,它继承自HashMap,并实现了通过Key进行模糊匹配来查找value的功能。在getValues方法中,它将HashMap的所有key排序,然后遍历寻找包含目标字符串的key,将其对应的value添加到结果列表中。在main方法中,创建了一个LikeHashMap实例并填充数据,然后展示了如何使用getValues方法进行匹配查找并输出了执行时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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);

    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值