大家都知道,在Java里对对象的操作是基于引用的。而当我们需要对一组对象操作的时候,就需要有接收这一组引用的容器。平时我们最常用的就是数组。在Java里可以定义一个对象数组来完成许多操作。可是,数组长度是固定的,如果我们需要更加灵活的解决方案该怎么办呢?
本文重点介绍HashMap。首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。在下文中会有例子具体说明。
再来看看HashMap和TreeMap有什么区别。HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。
下面就要进入本文的主题了。先举个例子说明一下怎样使用HashMap:
java 代码
- import java.util.*;
- public class Exp1 {
- public static void main(String[] args){
- HashMap h1=new HashMap();
- Random r1=new Random();
- for(int i=0;i<1000;i++){
- Integer t=new Integer(r1.nextInt(20));
- if(h1.containsKey(t))
- ((Ctime)h1.get(t)).count++;
- else
- h1.put(t, new Ctime());
- }
- System.out.println(h1);
- }
- }
-
- class Ctime{
- int count=1;
- public String toString(){
- return Integer.toString(count);
- }
- }
-
在HashMap中通过get()来获取value,通过put()来插入value,ContainsKey()则用来检验对象是否已经存在。可以看出,和ArrayList的操作相比,HashMap除了通过key索引其内容之外,别的方面差异并不大。
分享到:
相关推荐
在Java的集合框架中,HashSet,HashMap是用的比较多的一种,顺序结构的ArrayList、LinkedList这种也比较多,而像那几个线程同步的容器用的比较少,像Vector和HashTable,因为这两个线程同步的容器已经不被JDK推荐...
hashmap实例 hashmap实例hashmap实例hashmap实例
HashMap数据结构,HashMap的构造方法,HashMap的put,HashMap的get
hashmap相关的面试题
HashMap介绍和使用
HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改HashMap是非synchronized,所以HashMap很快...
HashMap存放.doc
hashmap的底层及源码解析,很适合大家的学习,不要积分。
hashMap排序,hashmap使用还是比较频繁。这时自己写的一个实现hashmap排序的例子
HashMap为什么是线程不安全的?如何解决HashMap的线程不安全问题?
Javascript实现和操作HashMap,压缩包里面有hashmap定义和操作的例子
模拟java中的HashMap类js类对象,可以与js的Array类对象配合使用
Hashmap详解
这个文档“ HashMap详解(通俗易懂)”很好的阐述了hashmap的底层数据结构示意,希望对学习java的人有帮助
HashMap类.rar
Java SE程序 HashMap类Java SE程序 HashMap类Java SE程序 HashMap类Java SE程序 HashMap类Java SE程序 HashMap类Java SE程序 HashMap类Java SE程序 HashMap类Java SE程序 HashMap类Java SE程序 HashMap类Java SE程序...
HASHMAP缓存.txt HASHMAP缓存.txt
HashMap底层实现原理HashMap与HashTable区别HashMap与HashSet区别。HashMap、HashTable和HashSet是Java中常用的数据结构,它们的底层实现原理以及区别如下:HashMap底层实现原理: HashMap基于哈希表(HashTable)...
记得刚毕业那会准备面试,看过不少面试题,里面有个说出HashMap和HashTable不同的题目,我那会面试的时候也遇到不少次这个问题,还隐约记得当时的回答是这样的: HashTable是比较旧的版本;HashTable是线程安全的,...
C语言实现hashMap,包含创建hashMap、插入hashMap、查找hashMap、删除hashMap,已经若干经典的hash函数。文章链接:https://blog.csdn.net/sxf1061700625/article/details/109594495