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);
}
}
相关推荐
总结来说,这段代码展示了如何在HashMap中通过值来查找键,这通常需要遍历整个HashMap的Entry集合,并使用Map.Entry的`getValue()`和`getKey()`方法进行比较。虽然这种方法在大数据量的情况下效率较低,但在某些场景...
哈希映射(HashMap)是Java编程语言中一个非常重要的数据结构,它在《简单的key value hashmap》中被提及,通常用于存储键值对(key-value pairs)。HashMap是Java集合框架的一部分,它提供了高效的查找、插入和删除...
HashMap是Java编程语言中最常用的集合类之一,它提供了一种基于键值对(key-value pair)的数据存储方式,允许我们通过键快速查找对应的值。在Java的HashMap中,元素是无序的,也就是说,它们在内存中的存储位置并...
Map集合的特性:一个key值对应一个value值,key值保持着唯一性,而插入的键值对相同key值会发生覆盖原key值对应的value值。 Map集合中一个key对应一个value,但是一个相同的value值可以对应多个key值 下面我们来根据...
在Java编程中,HashMap是一种常用的集合类,它存储键值对(key-value pairs)并提供了高效的查找、插入和删除操作。通常我们使用键(key)来查找对应的值(value),但有时我们也需要根据值(value)来查找键(key)...
本工程通过`VS2013`(Visual Studio 2013,虽然它主要用于C++开发,但这里可能是用来运行Java代码的IDE)对这两种数据结构进行了查找效率的对比。 **HashMap** `HashMap`是Java中的一个散列映射类,实现了`Map`...
Java HashMap是一种基于哈希表的数据结构,它的存储原理是通过将Key-Value对存储在一个数组中,每个数组元素是一个链表,链表中的每个元素是一个Entry对象,Entry对象包含了Key、Value和指向下一个Entry对象的引用。...
易语言HashMap类是一种在易语言编程环境中实现的高效数据结构,它主要用于存储键值对(key-value pairs),提供快速的数据存取。HashMap类基于哈希表(Hash Table)原理,通过计算键的散列值来确定数据在内存中的...
对于 HashMap 而言,系统 key-value 当成一个整体进行处理,系统总是根据 Hash 算法来计算 key-value 的存储位置,这样可以保证能快速存、取 Map 的 key-value 对。 6. HashMap 的使用 HashMap 的使用可以通过创建...
HashMap基于哈希表实现,它的核心思想是通过哈希函数将键(key)转化为数组索引,快速定位到对应的值(value)。哈希函数确保了键的快速查找,但可能会出现哈希冲突,HashMap通过链地址法解决这个问题,即将相同哈希...
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。 HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 Hashtable继承自Dictionary类...
HashMap是Java编程语言中常用的集合类之一,它属于哈希表数据结构,提供key-value的存储方式,并且具有快速查询的特性。然而,HashMap本身并不保证元素的顺序,特别是当涉及到遍历或输出HashMap的内容时,顺序可能会...
本篇将围绕HashMap的相关面试题,从基础概念到高级应用进行详尽解析。 一、HashMap概述 HashMap是一个基于哈希表实现的键值对存储结构,它提供了快速的插入、删除和查找操作,平均时间复杂度为O(1)。HashMap非线程...
在JavaScript中,HashMap是一种数据结构,它存储键值对,并且通过键来快速查找值。虽然JavaScript原生的`Map`对象提供了类似的功能,但在某些场景下,开发者可能需要自定义HashMap来满足特定的需求,例如优化性能...
这个数据结构的核心原理是哈希函数,它将键(Key)转换为哈希码(Hash Code),然后根据哈希码来确定值(Value)在内存中的存储位置,以实现快速查找。 1. 哈希函数:哈希函数是HashMap的核心,它的作用是将键对象...
HashMap内部通过一个数组结构存储键值对,数组中的每个元素称为Entry,Entry是一个静态内部类,其中包含了key、value、next和hash四个属性。key和value分别存储键和值,next是存储相同哈希值的下一个Entry,hash是...
在`HashMap`中,我们可以通过`entrySet()`、`keySet()`或`values()`方法获取迭代器,分别针对键值对、键或值进行迭代。 1. **使用`entrySet()`迭代**: 这是最常见的迭代方式,因为它允许同时访问键和值。首先,...
在Java编程语言中,HashMap是一种常用的集合类,它实现了Map接口,用于存储键值对(key-value pairs)。HashMap的工作基于哈希表数据结构,提供快速的插入、删除和查找操作。下面我们将深入探讨HashMap的实现原理,...