`
lucky_xingxing
  • 浏览: 119316 次
  • 性别: 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中通过值来查找键,这通常需要遍历整个HashMap的Entry集合,并使用Map.Entry的`getValue()`和`getKey()`方法进行比较。虽然这种方法在大数据量的情况下效率较低,但在某些场景...

    简单的key value hashmap

    哈希映射(HashMap)是Java编程语言中一个非常重要的数据结构,它在《简单的key value hashmap》中被提及,通常用于存储键值对(key-value pairs)。HashMap是Java集合框架的一部分,它提供了高效的查找、插入和删除...

    Hashmap 通过对VALUE排序 源代码

    HashMap是Java编程语言中最常用的集合类之一,它提供了一种基于键值对(key-value pair)的数据存储方式,允许我们通过键快速查找对应的值。在Java的HashMap中,元素是无序的,也就是说,它们在内存中的存储位置并...

    HashMap根据value获取key值

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

    易语言HashMap类

    易语言HashMap类是一种在易语言编程环境中实现的高效数据结构,它主要用于存储键值对(key-value pairs),提供快速的数据存取。HashMap类基于哈希表(Hash Table)原理,通过计算键的散列值来确定数据在内存中的...

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

    在Java编程中,HashMap是一种常用的集合类,它存储键值对(key-value pairs)并提供了高效的查找、插入和删除操作。通常我们使用键(key)来查找对应的值(value),但有时我们也需要根据值(value)来查找键(key)...

    HashMap和链表的查找效率比较

    本工程通过`VS2013`(Visual Studio 2013,虽然它主要用于C++开发,但这里可能是用来运行Java代码的IDE)对这两种数据结构进行了查找效率的对比。 **HashMap** `HashMap`是Java中的一个散列映射类,实现了`Map`...

    java HashMap原理分析

    Java HashMap是一种基于哈希表的数据结构,它的存储原理是通过将Key-Value对存储在一个数组中,每个数组元素是一个链表,链表中的每个元素是一个Entry对象,Entry对象包含了Key、Value和指向下一个Entry对象的引用。...

    Java HashMap类详解

    对于 HashMap 而言,系统 key-value 当成一个整体进行处理,系统总是根据 Hash 算法来计算 key-value 的存储位置,这样可以保证能快速存、取 Map 的 key-value 对。 6. HashMap 的使用 HashMap 的使用可以通过创建...

    hashmap使用实例

    HashMap基于哈希表实现,它的核心思想是通过哈希函数将键(key)转化为数组索引,快速定位到对应的值(value)。哈希函数确保了键的快速查找,但可能会出现哈希冲突,HashMap通过链地址法解决这个问题,即将相同哈希...

    java程序员面试题

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

    HASHMAP排序功能描述

    HashMap是Java编程语言中常用的集合类之一,它属于哈希表数据结构,提供key-value的存储方式,并且具有快速查询的特性。然而,HashMap本身并不保证元素的顺序,特别是当涉及到遍历或输出HashMap的内容时,顺序可能会...

    hashmap面试题_hashmap_

    本篇将围绕HashMap的相关面试题,从基础概念到高级应用进行详尽解析。 一、HashMap概述 HashMap是一个基于哈希表实现的键值对存储结构,它提供了快速的插入、删除和查找操作,平均时间复杂度为O(1)。HashMap非线程...

    Javascript实现和操作HashMap

    在JavaScript中,HashMap是一种数据结构,它存储键值对,并且通过键来快速查找值。虽然JavaScript原生的`Map`对象提供了类似的功能,但在某些场景下,开发者可能需要自定义HashMap来满足特定的需求,例如优化性能...

    hashMap具体详解

    这个数据结构的核心原理是哈希函数,它将键(Key)转换为哈希码(Hash Code),然后根据哈希码来确定值(Value)在内存中的存储位置,以实现快速查找。 1. 哈希函数:哈希函数是HashMap的核心,它的作用是将键对象...

    Java中HashMap的工作机制

    HashMap内部通过一个数组结构存储键值对,数组中的每个元素称为Entry,Entry是一个静态内部类,其中包含了key、value、next和hash四个属性。key和value分别存储键和值,next是存储相同哈希值的下一个Entry,hash是...

    hashMap利用iterator迭代器迭代元素方法

    在`HashMap`中,我们可以通过`entrySet()`、`keySet()`或`values()`方法获取迭代器,分别针对键值对、键或值进行迭代。 1. **使用`entrySet()`迭代**: 这是最常见的迭代方式,因为它允许同时访问键和值。首先,...

    hashmap.zip

    在Java编程语言中,HashMap是一种常用的集合类,它实现了Map接口,用于存储键值对(key-value pairs)。HashMap的工作基于哈希表数据结构,提供快速的插入、删除和查找操作。下面我们将深入探讨HashMap的实现原理,...

Global site tag (gtag.js) - Google Analytics