java映射的概念_Java之路:映射(Map)

  • Post author:
  • Post category:java


在java.util中还增加了映射(Map)。映射是一个存储关键字和值的关联,或者说是“关键字/值”对的对象,即给定一个关键字,可以得到它的值。关键字和值都是对象,关键字必须是唯一的,但是可以存在相同的值。有的映射可以接收null关键字和null值,有的则不能。

可以将Map视为偶对象保存接口。Collection每一次只保存一个对象,而Map保存的是一对对象,而且这一对对象一定是按照“Key = Value”的形式保存,也就是说,可以通过Key找到对应的Value,那么这就好比使用电话本一样: ⑴ Key = 张三,Value = 110; ⑵ Key = 李四,Value = 120; 如果说现在要想找到张三的电话,那么首先应该通过张三这个Key,然后找到其对应的Value——110,如果现在保存的数据之中没有对应的Key,那么就返回null。

下表给出了支持映射的接口:

一、Map 接口

Map接口映射唯一关键字到值。关键字(key)是以后用于检索值的对象。给定一个关键字和一个值,可以存储这个值到一个Map对象中。当这个值被存储以后,就可以使用它的关键字来检索它。

Map的方法总结在下表中:

注意事项

(1)当调用的映射中没有项存在时,其中的几种方法会引发一个NoSuchElementException异常。 (2)当对象与映射中的元素不兼容时,则会引发一个ClassCastException异常。 (3)如果试图使用映射不允许使用的null对象,则会引发一个NullPointerException异常。 (4)当试图改变一个不允许修改的映射时,则会引发一个UnsupportedOperationException异常。

映射不是类集,但可以获得映射的类集“视图”。为了实现这种功能,可以使用entrySet( )方法,它返回一个包含了映射中元素的集合(Set)。为了得到关键字的类集“视图”,可以使用keySet( )方法。为了得到值的类集“视图”,可以使用values()方法。类集“视图”是将映射集成到类集框架内的手段。

二、SortedMap 接口

SortedMap接口扩展了Map,它确保了各项按关键字升序排序。

由SortedMap说明的方法总结在下表中:

注意事项

(1)当调用映射中没有的项时,其中的几种方法将引发一个NoSuchElementException异常。 (2)当对象与映射中的元素不兼容时,则会引发一个ClassCastException异常。 (3)当试图使用映射不允许使用的null对象时,则会引发一个nullPointerException异常。

三、Map.Entry 接口

Map.Entry接口使得可以操作映射的输入。

如由Map接口说明的entrySet( )方法,调用该方法可返回一个包含映射输入的集合(Set),这些集合元素的每一个都是一个Map.Entry对象。

下表总结了由该接口说明的方法:

四、映射类

AbstractMap对3个具体的映射实现来说,是一个超类。AbstractMap的另一个子类——WeakHashMap实现一个使用“弱关键字”的映射,它允许映射中的元素,当该映射的关键字不再被使用时,被放入回收站。

1、HashMap 类

HashMap类使用散列表实现Map接口,它是Map接口中最为常用的子类。

HashMap允许一些基本操作,如get( )和put( )的运行时间保持恒定,即便对大型的集合也是这样的。下面的构造方法定义为:

(1)HashMap( ) :构造一个默认的散列映射。 (2)HashMap(Map m) :用



版权声明:本文为weixin_35160938原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。