`
freewxy
  • 浏览: 342784 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hashMap的使用

阅读更多
    [size=small;]java.util.hashMap类继承自java.util.Map接口。Map类有以下方法:[/size]


void clear()    //从此映射中移除所有映射关系

Boolean containsKey(Object key)//如果此映射中含有指定键的映射关系,则返回true

Boolean equals(object o)//比较指定的对象与此映射是否相等

V get(object key)//返回指定键所映射的值,如果此映射不包含该见的关系,则返回null

int hashCode()//返回此映射的哈希码值

Boolean isEmpty()//如果此映射不包含键-值映射关系,则返回TRUE

Set keySet()//返回此映射中包含的键的set视图

V put(K key, V value)//将指定的值与此映射中的指定键关联(可选操作)

void putAll(Map extends K,?extends V> m)//从指定的映射中将所有映射关系复制到此映射中

V remove(object K )//如果存在一个键的映射关系,则将其从此映射中移除(可选操作)

int size()//返回此映射中的键-值关系数


[size=small;]java.util.HashMap中的方法:[/size]



[b][size=small;]
[b]HashMap
()
          构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。
HashMap(int initialCapacity)
          构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。
[url=http://freewxy.iteye.com/java/util/HashMap.html#HashMap(int, float)]HashMap[/url](int initialCapacity, float loadFactor)
          构造一个带指定初始容量和加载因子的空 HashMap。
HashMap(Map extends K,? extends V> m)
          构造一个映射关系与指定 Map 相同的新 HashMap。

[/size][/b]

[/b]


void
[b]clear
()
          从此映射中移除所有映射关系。
Object
clone()
          返回此 HashMap 实例的浅表副本:并不复制键和值本身。
boolean
containsKey(Object key)
          如果此映射包含对于指定键的映射关系,则返回 true。
boolean
containsValue(Object value)
          如果此映射将一个或多个键映射到指定值,则返回 true。
SetMap.EntryK,V>>
entrySet()
          返回此映射所包含的映射关系的 Set 视图。
V
get(Object key)
          返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 null。
boolean
isEmpty()
          如果此映射不包含键-值映射关系,则返回 true。
SetK>
keySet()
          返回此映射中所包含的键的 Set 视图。
V
[url=http://freewxy.iteye.com/java/util/HashMap.html#put(K, V)]put[/url](K key, V value)
          在此映射中关联指定值与指定键。
void
putAll(Map extends K,? extends V> m)
          将指定映射的所有映射关系复制到此映射中,这些映射关系将替换此映射目前针对指定映射中所有键的所有映射关系。
V
remove(Object key)
          从此映射中移除指定键的映射关系(如果存在)。
int
size()
          返回此映射中的键-值映射关系数。
CollectionV>
values[/b]()
          返回此映射所包含的值的 Collection 视图。
package wxy.example.hashmap;

import   java.util.Set; 
import   java.util.Map; 
import   java.util.HashMap; 
import   java.util.Iterator; 

public class HashMapExample 
{ 
    public static void main(String[] args) 
        { 
          //   Create   a   new   HashMap 
           Map map=new HashMap(); 
                //   Add   Items   to   the   HashMap   
           map.put(new Integer(1),"One "); // V put(K key, V value) 在此映射中关联指定值与指定键。 
           map.put(new Integer(2),"Two "); //Integer()是一个类
           map.put(new Integer(3),"Three "); 
           map.put(new Integer(4),"Four "); 
           map.put(new Integer(5),"Five "); 
           map.put(new Integer(6),"Six "); 
           map.put(new Integer(7),"Seven "); 
           map.put(new Integer(8),"Eight "); 
           map.put(new Integer(9),"Nine "); 
           map.put(new Integer(10),"Ten"); 

     //   Use   iterator   to   display   the   keys   and   associated   values   
          System.out.println("Map   Values   Before:   "); 
          Set keys =map.keySet(); //返回此映射中所包含的键的 Set 视图
          for(Iterator i=keys.iterator();i.hasNext();) 
          { //Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑
        	//从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。
              Integer key=(Integer)i.next(); 
              //get(Object key) 返回指定键所映射的值;
              //如果对于该键来说,此映射不包含任何映射关系,则返回 null。
              String value =(String)map.get(key); 
              System.out.println(key+"="+value); 
           } 

          //   Remove   the   entry   with   key   6   
           System.out.println("\nRemove   element   with   key   6 "   ); 
          //remove(key) 从此映射中移除指定键的映射关系(如果存在)。
           map.remove(new Integer(6)); 
          //   Use   iterator   to   display   the   keys   and   associated   values   
           System.out.println("\nMap   Values   After:   "   ); 
           keys =map.keySet();  //返回此映射中所包含的键的 Set 视图
           for(Iterator i=keys.iterator();i.hasNext();) 
           { 
               Integer key=(Integer)i.next(); 
               String value = (String)map.get(key); 
               System.out.println(key+"="+value); 
           } 
           //other test of the method
           System.out.println("<-Size()->:"+map.size());
           System.out.println("<-hashCode()->:"+map.hashCode());
           System.out.println("<-entrySet()->:"+map.entrySet());
           System.out.println("<-map.containsKey(new Integer(5)->:"+map.containsKey(new Integer(5)));
           System.out.println("<-map.containsKey(new Integer(6))->:"+map.containsKey(new Integer(6)));
           System.out.println("<-map.values()->:"+map.values());
           System.out.println("<-map.get(new Integer(3))->:"+map.get(new Integer(3)));
           System.out.println("<-map.keySet()->:"+map.keySet());
           System.out.println("<-map.containsValue(\"Ten\")->:"+map.containsValue("Ten"));
           System.out.println("<-getClass()->:"+map.getClass());
           System.out.println("<-map.isEmpty()->:"+map.isEmpty());
           map.clear();
           System.out.println("<-map.clear()->:");
           System.out.println("<-map.isEmpty()->:"+map.isEmpty());
           
        } 
} 


今天大概了解一下HashMap这个类,还有对迭代器的使用,比较晕!
分享到:
评论
2 楼 huangfenghit 2011-08-08  
好文章啊!
1 楼 贾懂凯 2010-10-20  
迭代器的四种用法我的那篇关于“集合框架”的文章里有。无非就是获得entry或者获得key的队列两种。内层的实现我也不是很清楚。

相关推荐

    Rust 集合类型String, Vector, HashMap 使用详解

    ### Rust 集合类型String, Vector, HashMap 使用详解 #### 一、String 类型详解 **String** 是 Rust 中非常重要的数据结构之一,用于表示可变长度的 UTF-8 编码的文本字符串。Rust 语言设计时充分考虑了 Unicode ...

    HashMap介绍和使用

    Java中HashMap使用的哈希函数是基于键的哈希码进行计算。具体计算方式如下: ```java static int indexFor(int h, int length) { return h & (length - 1); } ``` 这里的`length`是指数组的长度,必须是2的幂。...

    Go-Go的hashmap使用加密随机种子散列提示开放寻址和罗宾汉哈希

    Go的HashMap不再使用简单的随机数,而是使用一个加密安全的伪随机数生成器来生成种子。这样做是为了防止恶意攻击者通过预测哈希值来探测或篡改HashMap的内容。加密随机种子确保了哈希函数的输出难以预测,增加了系统...

    HashMap总结

    1. 使用迭代器遍历:使用 iterator() 方法取得 HashMap 的迭代器,然后使用 hasNext() 和 next() 方法遍历 HashMap 中的元素。 2. 使用 foreach 遍历:使用 foreach 语句遍历 HashMap 中的元素。 HashMap 的常用...

    HashMap之resize()方法源码解读.docx

    HashMap之resize()方法源码解读 HashMap的resize()方法是HashMap...在resize()方法中,我们可以看到HashMap的扩容机制是如何工作的,并了解到HashMap使用了power-of-two expansion机制和threshold字段来记录扩容阈值。

    C++hashmap的使用实例

    在C++编程中,`hashmap`通常指的是`std::unordered_map`,它是一个关联容器,提供了基于哈希表的键值对存储。这个数据结构允许我们以接近常数时间的复杂度进行插入、查找和删除操作,极大地提高了程序的执行效率。...

    hashmap使用实例

    HashMap是Java编程语言中的一种重要数据结构,它在Android开发中同样被广泛使用。HashMap属于集合框架的一部分,提供了键值对(key-value pair)的存储功能。在这个实例中,我们将深入探讨HashMap的工作原理、基本...

    HashMap的数据结构

    为了解决这个问题,HashMap使用了链地址法,即在每个数组索引位置上存储一个链表,碰撞的键值对会被链接到同一个索引位置的链表上。 1. **哈希函数**:哈希函数是HashMap的核心,它的目标是将键转换为数组的索引。...

    Java中HashMap详解(通俗易懂).doc

    1. **哈希函数**:HashMap使用键对象的hashCode()方法生成哈希码,这个哈希码用于确定元素在内部数组中的位置。哈希函数的目标是尽可能地将不同的键映射到不同的桶,以减少冲突。 2. **哈希冲突解决**:尽管哈希...

    HashMap类.rar

    1. **哈希表**:HashMap使用哈希表来存储键值对。哈希表是一种数据结构,通过计算对象的哈希值来确定其在表中的位置,以便快速访问。 2. **键值对**:每个元素都由一个键(Key)和一个值(Value)组成,键不能重复...

    Hashmap详解

    HashMap 详解 HashMap 是一种常用的数据结构,在 Java 中,它是一个数组和链表的结合...通过深入探讨 HashMap 的数据结构和 put 方法的实现,我们可以更好地理解 HashMap 的工作原理,并更好地使用它来解决实际问题。

    hashmap.zip

    2. **哈希函数**:HashMap使用键对象的`hashCode()`方法生成哈希码,然后通过取模运算将哈希码映射到数组的索引位置。哈希函数的质量直接影响了冲突的可能性和性能。 3. **负载因子**:HashMap有一个名为`...

    java HashMap原理分析

    1. 哈希函数:HashMap使用哈希函数将Key转换为一个哈希码,然后根据哈希码将Key-Value对存储在数组中的特定位置上。 2. collisions处理:当两个不同的Key发生哈希碰撞时,HashMap会将它们存储在同一个链表中,在查找...

    深入arraylist,linkedlist,hashmap,hashset源码(2012/3/18)

    然而,当哈希冲突发生时,HashMap使用链地址法来处理,这可能导致链表过长,影响性能。HashMap的`put()`、`get()`和`resize()`方法是核心,理解它们的实现可以避免在实际使用中出现性能瓶颈。 HashSet是一个不包含...

    java中HashMap详解.pdf

    为了找到对应的数组位置,HashMap使用了indexFor()方法,该方法通过将散列值与数组长度减一进行按位与操作来得到索引值: ```java static int indexFor(int hash, int length) { return hash & (length - 1); } ``...

    05.HashMap相关面试题

    * 在 JDK 1.8 中,HashMap 使用数组+链表+红黑树来存储键值对,链表过长时,会将其转换为红黑树,以提高查询效率。 5. HashMap 的线程安全问题 HashMap 在多线程环境下使用时,需要注意线程安全问题,否则可能会...

    比较Vector、ArrayList和hashtable hashmap

    HashMap 使用哈希函数将键映射到桶中,这样可以快速定位到对应的值。HashMap 不保证映射的顺序,特别是它不保证这种顺序在多次迭代之后保持不变。HashMap 允许 null 键和 null 值,但每个键只能出现一次。HashMap ...

    面试必考之HashMap源码分析与实现

    当两个键的哈希值相同,导致冲突时,HashMap使用链地址法来解决,即将冲突的键值对链接成一个链表。 3. **哈希冲突处理** 在HashMap中,如果两个键的哈希值相同但并不相等,它们会在同一个桶(数组索引位置)形成...

    HashMap和HashTable底层原理以及常见面试题

    2. 性能:HashMap的性能比HashTable好,因为HashMap使用数组和链表来存储键值对,而HashTable使用链表来存储键值对。 3. null键:HashMap允许存放null键和null值,而HashTable不允许存放null键和null值。 常见面试...

    jQuery HashMap

    使用jQuery开发HashMap,包含一些基本的功能。

Global site tag (gtag.js) - Google Analytics