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

原创 2016年08月30日 21:44:04

映射(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,而它本身并没有另外定义其他方法。

版权声明:本文为博主原创文章,未经博主允许不得转载。

为什么集合类没有实现Cloneable和Serializable接口

转自:牛客网 为什么集合类没有实现Cloneable和Serializable接口? 答:克隆(cloning)或者序列化(serialization)的语义和含义是跟具体的实现相关的。因此应...
  • qq_18433441
  • qq_18433441
  • 2017年10月13日 09:44
  • 1000

Java:常用集合类(List、Map、Set、Queue、Stack)

迭代器基本概念Iterator接口包含3个方法:public interface Iterator { E next(); boolean hasNext(); void re...
  • jinzhao1993
  • jinzhao1993
  • 2016年10月07日 07:54
  • 659

映射关系接口Map

一 Map集合概述 Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value,key和value都可以是任何引用类型的...
  • chengqiuming
  • chengqiuming
  • 2017年04月12日 09:46
  • 252

深入理解java映射map的底层操

亲戚
  • u012486727
  • u012486727
  • 2014年04月20日 22:00
  • 693

JAVA集合类实现原理简述-Part1 Map

HashMapHashmap的底层数据结构为散列表,底层实现结构为数组和链表,当一个key-val对要插入时,会根据key计算出hashcode,然后映射到数组的某个位置。如果数组的位置已经被占用且发...
  • wanglaijun311
  • wanglaijun311
  • 2016年11月28日 23:56
  • 558

集合类接口的常用方法

Collection接口是层次结构中的根结口。构成Collection的单位,被称为元素。Collection接口通常不能直接使用,但该接口提供了添加和删除元素、管理数据的方法。...
  • gugaopeng19940928
  • gugaopeng19940928
  • 2017年08月07日 19:48
  • 264

Java集合类Map之Map与AbstractMap

今日面试某著名公司,当问到java集合类
  • u011303841
  • u011303841
  • 2014年08月17日 14:38
  • 883

java -- Map映射接口

Map 是一个映射接口,Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。Map中常用方法...
  • firearrow66
  • firearrow66
  • 2017年12月21日 21:42
  • 58

java映射Map

映射     Map用于存储一个由关键字(key)和它们的值(value)组成的条目集合。Map把关键字映射到相应的值,关键字必须是独一无二的,但是不同的关键字也可以对应相同的值。因此,值不需要独一...
  • ldld1717
  • ldld1717
  • 2016年09月17日 12:35
  • 1238

Set,List,Map的区别 Set(集) List(列表) Map(映射)

Set,List,Map的区别 java集合的主要分为三种类型: Set(集) List(列表) Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,并且同一个数...
  • lz1012793721
  • lz1012793721
  • 2016年01月07日 21:19
  • 914
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java(集合类)第三部分(Map映射接口)
举报原因:
原因补充:

(最多只允许输入30个字)