`

HashMap浅析

    博客分类:
  • j2se
 
阅读更多

大家都知道,在Java里对对象的操作是基于引用的。而当我们需要对一组对象操作的时候,就需要有接收这一组引用的容器。平时我们最常用的就是数组。在Java里可以定义一个对象数组来完成许多操作。可是,数组长度是固定的,如果我们需要更加灵活的解决方案该怎么办呢?

本文重点介绍HashMap。首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。在下文中会有例子具体说明。

再来看看HashMap和TreeMap有什么区别。HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。

下面就要进入本文的主题了。先举个例子说明一下怎样使用HashMap:

 

java 代码
  1. import java.util.*;    
  2. public class Exp1 {   
  3.      public static void main(String[] args){   
  4.           HashMap h1=new HashMap();   
  5.           Random r1=new Random();       
  6.           for(int i=0;i<1000;i++){   
  7.                Integer t=new Integer(r1.nextInt(20));//生成1000个0到20的数字   
  8.                if(h1.containsKey(t))//比较h1里面是否有t,其实h1里面是个空对象,更本不会有的,这里是为了演示containsKey()这个方法   
  9.                     ((Ctime)h1.get(t)).count++;//要是有的话,取得它,并把指针移到下一个的地址   
  10.                else  
  11.                     h1.put(t, new Ctime());//插入值   
  12.           }   
  13.           System.out.println(h1);   
  14.      }   
  15. }   
  16.   
  17. class Ctime{//Ctime是自带的,表示一个生成的秒数。   
  18.      int count=1;   
  19.      public String toString(){   
  20.           return Integer.toString(count);   
  21.      }   
  22. }   
  23.   

 
 
 在HashMap中通过get()来获取value,通过put()来插入value,ContainsKey()则用来检验对象是否已经存在。可以看出,和ArrayList的操作相比,HashMap除了通过key索引其内容之外,别的方面差异并不大。

分享到:
评论

相关推荐

    Java中的HashMap浅析

    在Java的集合框架中,HashSet,HashMap是用的比较多的一种,顺序结构的ArrayList、LinkedList这种也比较多,而像那几个线程同步的容器用的比较少,像Vector和HashTable,因为这两个线程同步的容器已经不被JDK推荐...

    hashmap 实例

    hashmap实例 hashmap实例hashmap实例hashmap实例

    HashMap部分源码分析

    HashMap数据结构,HashMap的构造方法,HashMap的put,HashMap的get

    hashmap面试题_hashmap_

    hashmap相关的面试题

    HashMap介绍和使用

    HashMap介绍和使用

    HashMap原理.docx

    HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改HashMap是非synchronized,所以HashMap很快...

    HashMap存放.doc

    HashMap存放.doc

    hashmap实现原理

    hashmap的底层及源码解析,很适合大家的学习,不要积分。

    HashMap排序

    hashMap排序,hashmap使用还是比较频繁。这时自己写的一个实现hashmap排序的例子

    关于如何解决HashMap线程安全问题的介绍

    HashMap为什么是线程不安全的?如何解决HashMap的线程不安全问题?

    Javascript实现和操作HashMap

    Javascript实现和操作HashMap,压缩包里面有hashmap定义和操作的例子

    HashMap.js

    模拟java中的HashMap类js类对象,可以与js的Array类对象配合使用

    Hashmap详解

    Hashmap详解

    HashMap详解(通俗易懂)

    这个文档“ HashMap详解(通俗易懂)”很好的阐述了hashmap的底层数据结构示意,希望对学习java的人有帮助

    HashMap类.rar

    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类Java SE程序...

    HASHMAP缓存.txt

    HASHMAP缓存.txt HASHMAP缓存.txt

    HashMap底层实现原理HashMap与HashTable区别HashMap与HashSet区别.docx

    HashMap底层实现原理HashMap与HashTable区别HashMap与HashSet区别。HashMap、HashTable和HashSet是Java中常用的数据结构,它们的底层实现原理以及区别如下:HashMap底层实现原理: HashMap基于哈希表(HashTable)...

    HashMap和HashTable的区别和不同

    记得刚毕业那会准备面试,看过不少面试题,里面有个说出HashMap和HashTable不同的题目,我那会面试的时候也遇到不少次这个问题,还隐约记得当时的回答是这样的: HashTable是比较旧的版本;HashTable是线程安全的,...

    C语言实现hashMap

    C语言实现hashMap,包含创建hashMap、插入hashMap、查找hashMap、删除hashMap,已经若干经典的hash函数。文章链接:https://blog.csdn.net/sxf1061700625/article/details/109594495

Global site tag (gtag.js) - Google Analytics