`

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推荐...

    浅析Java中Map与HashMap,Hashtable,HashSet的区别

    `HashMap`、`Hashtable`和`HashSet`都是基于`Map`或`Set`接口实现的不同数据结构,它们在功能、线程安全性和性能等方面有显著差异。 首先,`HashMap`和`Hashtable`都实现了`Map`接口,这意味着它们都可以存储键值对...

    Java中HashMap和Hashtable的区别浅析

    在Java编程语言中,HashMap和Hashtable都是用于存储键值对的数据结构,它们都实现了Map接口。然而,两者之间存在一些显著的区别,这些差异主要体现在线程安全性、空值支持、继承结构以及方法实现等方面。以下是关于...

    浅析java中ArrayList与Vector的区别以及HashMap与Hashtable的区别

    ArrayList和Vector,以及HashMap和Hashtable,都是常用的容器,但它们之间存在一些关键的区别,这将影响到在不同场景下的选择和使用。 首先,我们来看ArrayList和Vector的区别: 1. **同步性**: - `ArrayList` ...

    Java 集合浅析.txt

    ### Java集合浅析 #### 一、概述 Java集合框架是Java编程语言中处理数据结构的一个强大工具包,它提供了一系列灵活高效的接口和实现来帮助开发者管理数据。本篇文章将重点介绍Java中常用的集合类——`Collection`...

    ASP.NET笔试题浅析

    【ASP.NET笔试题浅析】 ASP.NET笔试题涵盖了C#和.NET框架的基础知识,以及ASP.NET应用程序开发的关键概念。以下是一些重点知识点的详细解析: 1. **类和结构的区别**: - 类是引用类型,结构是值类型。这意味着类...

    浅析《Java程序设计》的微课设计与实现.zip

    在本压缩包中,主要包含了一份关于“浅析《Java程序设计》的微课设计与实现”的PDF文档,这显然是一份深入探讨如何利用微课技术来教授Java编程的资料。微课是一种短小精悍的教学模式,通常涵盖一个特定的主题或技能...

    浅析Java8 中 Map 接口的新方法

    浅析Java8 中 Map 接口的新方法 Java8 中 Map 接口的新方法是指 Java8 中引入的一些新的方法,用于提高 Map 接口的使用效率和便捷性。在本文中,我们将详细介绍 Java8 中 Map 接口的新方法,并通过代码实例来演示其...

    JAVA高级编程资料

    ArrayList、LinkedList、HashSet、HashMap等是常用的集合实现,它们各自具有不同的特性和适用场景。JAVA还提供了泛型(Generic)来增强集合的安全性,避免类型转换异常。同时,接口如List、Set和Map定义了集合的基本...

    浅析Java中JSONObject和JSONArray使用

    在代码示例中,我们创建了一个JSONArray对象,并通过构造器的方式以及fromObject方法分别将ArrayList和HashMap对象转换成JSONArray对象。在使用fromObject方法时,需要注意的是,它将每个HashMap对象转换成一个独立...

    浅析Java 数据结构常用接口与类

    Dictionary类不提供具体的实现,而是作为一个基础,供子类如Hashtable和HashMap扩展。通过键来访问数据,使得字典类在需要关联数据而不是顺序访问的场景下非常有用。 哈希表(Hashtable)类是基于键值对的数据结构...

    浅析Java中的内存泄漏

    集合类如HashMap、ArrayList等会存储对象的引用。如果集合不再使用,但没有被清空或置为空,那么它们所包含的对象也无法被回收。 3. 事件监听器和回调。注册的监听器如果没有在不再需要时正确注销,可能会导致相关...

    浅析Java中的set集合类型及其接口的用法

    HashSet类是基于HashMap实现的,因此它在插入、删除和查找元素时具有较好的性能,但不保证元素的顺序。当我们向HashSet中添加元素时,元素的哈希码(hashCode)和equals方法会被用来决定元素是否已存在。如果两个...

    sesvc.exe 阿萨德

    final HashMap, String&gt; map = new HashMap, String&gt;(); for (int i = 0; i ; i++) { new Thread(new Runnable() { @Override public void run() { map.put(UUID.randomUUID().toString(), ""); } }).start();...

    浅析Java类和数据结构中常用的方法

    - `hashCode()`:返回对象的哈希码,用于散列存储,比如HashMap中。 - `notify()`:唤醒在该对象监视器上等待的单个线程。 - `notifyAll()`:唤醒在该对象监视器上等待的所有线程。 - `toString()`:返回对象的...

    浅析Android之Adapter用法总结

    1.概念  Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系: ...

    学习笔记

    4. **HashMap存储结构浅析** HashMap是Java中常用的数据结构,用于存储键值对。它基于哈希表实现,提供O(1)的平均查找时间。深入理解HashMap的内部工作,包括哈希函数、链表和红黑树的转换,对于提高代码效率有帮助...

    浅析java中遍历map的两种方式

    Map, Integer&gt; map = new HashMap(); // 填充map... Iterator, Integer&gt;&gt; iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry, Integer&gt; entry = iterator.next(); String key = ...

Global site tag (gtag.js) - Google Analytics