关闭

Java(集合类)第三部分(Map映射接口)

标签: java
103人阅读 评论(0) 收藏 举报
分类:

映射(map)是一个存储关键字和值的关联或者说是关键字/值对的集合。给定一个关键字可以得到它的值。关键字和值都是对象,每一对关键字/值叫做一项。关键字必须是唯一的,但值是可以重复的。有些映射可以接受null值,而有的则不行。因为映射接口定义了映射的特征和本质,下面先介绍和映射有关的接口,
接口 Map 描述:映射唯一关键字到值
接口Map.Entry 描述:描述映射中的项(关键字/值对),这是Map的一个内部接口
接口SortedMap 描述:继承Map以关键字按升序存储

1。Map接口
关键字(key)是用于检索值的对象。给定一个关键字和一个值,可以存储这个值到一个Map对象中。当这个值被存储后,就可以使用它的关键字来检索它。
2。SortedMap接口
SortedMap接口继承了Map,用于确保项按关键字升序排序。

实现Map接口类
1.HashMap
HashMap类使用散列表实现Map接口,这允许一些基本操作如get()和put()的运行时间保持恒定,即便对大型集合也是这样的。
构造方法
HashMap()
HashMap(Map m)
HashMap(int capacity)
HashMap(int capacity,float fillRatio)

HashMap实现了Map并且继承了AbstractMap,它本身并没有增加任何新的方法。应该注意的是,散列映射并不保证它的元素顺序(由散列函数的特性决定)。因此,将元素加入散列映射的顺序不一定就是它们被迭代函数读出的顺序。

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;import javax.management.MBeanParameterInfo;

public class HashMapDemo {
    public static void main(String[] args) {
        HashMap hashMap=new HashMap();
        hashMap.put("John",new Integer(96));
        hashMap.put("Tom",new Integer(197));
        hashMap.put("Jane",new Integer(198));
        hashMap.put("Hall",new Integer(199));
        Set set=hashMap.entrySet();
        Iterator iterator=set.iterator();
        while(iterator.hasNext())
        {
            Map.Entry mEntry=(Map.Entry)iterator.next();
            System.out.println(mEntry.getKey()+":");
            System.out.println(mEntry.getValue());
        }
        int balance=((Integer)hashMap.get("John")).intValue();
        hashMap.put("John",new Integer((int)(balance+100)));
        System.out.println("John's new balance:"+hashMap.get("John"));
    }

}

结果
Tom:
197
John:
96
Hall:
199
Jane:
198
John’s new balance:196
分析:程序首先创建一个散列映射,然后将名字到账户值的映射增加到HashMap中,接下来,映射的内容通过使用entrySet()而获得的项集合视图而显示出来,关键字和值通过调用由Map.Entry定义的getKey()和getValue()方法而显示出来,put()方法自动用新值替换与指定关键字相关联的原先的值。

2.TreeMap
TreeMap类使用树实现Map接口,TreeMap提供了按顺序存储关键字/值对的有效手段,同时允许快速检索。应该注意的是,不像散列映射,树映射能保证它的元素按照关键字升序排序。
TreeMap的构造函数包括
TreeMap()
TreeMap(Map m)
TreeMap(SortedMap sm)
第一种形式是构造一个空树的映射,该映射使用其关键字的自然顺序来排序。第二种形式是用m的映射项初始化树映射,该映射使用关键字的自然顺序来排序。第三种形式是用sm的输入来初始化一个树映射,该映射按与m相同的顺序来排序。
TreeMap实现SortedMap并且继承AbstractMap,而它本身并没有另外定义其他方法。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:74077次
    • 积分:3153
    • 等级:
    • 排名:第11303名
    • 原创:248篇
    • 转载:0篇
    • 译文:0篇
    • 评论:14条
    最新评论