Java-HashMap

package 集合类.Map类;  

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
 * Map 的key是不能重复的
 * @author jjj
 *
 */
public class HashMap类 {  

    /**
     * 如何遍历HashMap
     * 下面用法是jdk1.4就能支持
     */
    public void traverseMap() {
        Map map = new HashMap();
        Iterator it = map.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry entry = (Map.Entry) it.next();
            Object key = entry.getKey();
            Object value = entry.getValue();
        }
    }  

    /**
     * put() ,注意put方法不仅可以增加元素进行,也可以修改元素值
     * 因为map的key是不能重复的,所以要修改map中某个key的value时直接再put一次即可
     * get() ,通过key得到值
     * size()
     * remove()
     * key的遍历,构建map集合中所有key对象的集合
     * value的遍历,构建map集合中所有values值的集合
     */
    public  static void main(String[] args) {
        Map m1 = new HashMap();
        m1.put("Chinese", new Long(100000));
        m1.put("English", new Long(20000));
        m1.put("French", new Long(3000));
        m1.put("Korean", new Long(400));  

        // 可以这样修改值
        m1.put("French", new Long(123456789));
        m1.put("Chinese", new Long(123456789));
        m1.put("Korean", new Long(123456789));  

        System.out.println("The HashMap holds " + m1.size() + " elements");  

        System.out.println("The keys are:");  

        // 因为Map的key不可能重复,所以,可以用Set数据结构来存储
        Set keySet = m1.keySet();
        Iterator ikey = keySet.iterator();
        while (ikey.hasNext()) {
            System.out.println("\t" + ikey.next());
        }  

        System.out.println("The values are:");  

        // 因为Map的值有可能重复,所以不能用Set,要用Collection
        Collection valueCol = m1.values();
        Iterator ival = valueCol.iterator();
        while (ival.hasNext()) {
            System.out.println("\t" + ival.next());
        }  

        // 根据key,取出特定的值
        System.out.println("The value for Key \"Korean\" is "
                + m1.get("Korean").toString());
    }
}  
时间: 2025-01-03 20:08:53

Java-HashMap的相关文章

Java HashMap拾遗

Java HashMap拾遗 @author ixenos 零碎知识 尽量返回接口而非实际的类型,如返回List.Set.Map而非ArrayList.HashSet.HashMap,便于更换数据结构,而客户端代码不用改变.这就是针对抽象编程 Map.entrySet 方法返回Map映射的 Set 视图Set<Map.Entry<K,V>>,维护entry键值对 该 set 受Map映射支持,所以对Map映射的更改可在此 set 中反映出来,反之亦然! 如果对该 set 进行迭代的

[翻译]Java HashMap工作原理

大部分Java开发者都在使用Map,特别是HashMap.HashMap是一种简单但强大的方式去存储和获取数据.但有多少开发者知道HashMap内部如何工作呢?几天前,我阅读了java.util.HashMap的大量源代码(包括Java 7 和Java 8),来深入理解这个基础的数据结构.在这篇文章中,我会解释java.util.HashMap的实现,描述Java 8实现中添加的新特性,并讨论性能.内存以及使用HashMap时的一些已知问题. 内部存储 Java HashMap类实现了Map<K

【转】Java HashMap工作原理(好文章)

大部分Java开发者都在使用Map,特别是HashMap.HashMap是一种简单但强大的方式去存储和获取数据.但有多少开发者知道HashMap内部如何工作呢?几天前,我阅读了java.util.HashMap的大量源代码(包括Java 7 和Java 8),来深入理解这个基础的数据结构.在这篇文章中,我会解释java.util.HashMap的实现,描述Java 8实现中添加的新特性,并讨论性能.内存以及使用HashMap时的一些已知问题. 内部存储 Java HashMap类实现了Map<K

【转】Java HashMap 源码解析(好文章)

- .fluid-width-video-wrapper { width: 100%; position: relative; padding: 0; } .fluid-width-video-wrapper iframe, .fluid-width-video-wrapper object, .fluid-width-video-wrapper embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } [

转:Java HashMap实现详解

Java HashMap实现详解 转:http://beyond99.blog.51cto.com/1469451/429789 1.    HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变. 2.    HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造

[Java] HashMap、TreeMap、Hashtable排序

Java中对Map(HashMap,TreeMap,Hashtable等)的排序时间 首先简单说一下他们之间的区别: HashMap: 最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度.HashMap最多只允许一条记录的键为Null(多条会覆盖);允许多条记录的值为 Null.非 首先简单说一下他们之间的区别: HashMap: 最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度.HashMap

Java HashMap工作原理

内部存储 Java HashMap类实现了Map<K, V>接口.这个接口中的主要方法包括: V put(K key, V value) V get(Object key) V remove(Object key) Boolean containsKey(Object key) HashMap使用了一个内部类Entry<K, V>来存储数据.这个内部类是一个简单的键值对,并带有额外两个数据: 一个指向其他入口(译者注:引用对象)的引用,这样HashMap可以存储类似链接列表这样的对

java集合框架之java HashMap代码解析

 java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/article/java-hashmap-java-collection.html 签名(signature) public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Se

Java HashMap工作原理深入探讨

大部分Java开发者都在使用Map,特别是HashMap.HashMap是一种简单但强大的方式去存储和获取数据.但有多少开发者知道HashMap内部如何工作呢?几天前,我阅读了java.util.HashMap的大量源代码(包括Java 7 和Java 8),来深入理解这个基础的数据结构.在这篇文章中,我会解释java.util.HashMap的实现,描述Java 8实现中添加的新特性,并讨论性能.内存以及使用HashMap时的一些已知问题. 内部存储 Java HashMap类实现了Map<K

Java - HashMap 多线程安全解析

HashMap多线程并发问题分析 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题.后来,我们的程序性能有问题,所以需要变成多线程的,于是,变成多线程后到了线上,发现程序经常占了100%的CPU,查看堆栈,你会发现程序都Hang在了HashMap.get()这个方法上了,重启程序后问题消失.但是过段时间又会来.而且,这个问题在测试环境里可能很难重现. 我们简单的看一下我们自己的代码,我们就知道HashMa