当前位置:  编程技术>java/j2ee

JAVA Map架构和API介绍

    来源: 互联网  发布时间:2014-10-29

    本文导语:  首先,我们看看Map架构。如上图:Map 是映射接口,Map中存储的内容是键值对(key-value)。AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API。其它Map的实现类可以通过继承AbstractMap来减少重复编码。SortedMap 是继承于Map的接...

首先,我们看看Map架构。

如上图:
Map 是映射接口,Map中存储的内容是键值对(key-value)。
AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API。其它Map的实现类可以通过继承AbstractMap来减少重复编码。
SortedMap 是继承于Map的接口。SortedMap中的内容是排序的键值对,排序的方法是通过比较器(Comparator)。
NavigableMap 是继承于SortedMap的接口。相比于SortedMap,NavigableMap有一系列的导航方法;如"获取大于/等于某对象的键值对"、“获取小于/等于某对象的键值对”等等。
TreeMap 继承于AbstractMap,且实现了NavigableMap接口;因此,TreeMap中的内容是“有序的键值对”!
HashMap 继承于AbstractMap,但没实现NavigableMap接口;因此,HashMap的内容是“键值对,但不保证次序”!
Hashtable 虽然不是继承于AbstractMap,但它继承于Dictionary(Dictionary也是键值对的接口),而且也实现Map接口;因此,Hashtable的内容也是“键值对,也不保证次序”。但和HashMap相比,Hashtable是线程安全的,而且它支持通过Enumeration去遍历。
WeakHashMap 继承于AbstractMap。它和HashMap的键类型不同,WeakHashMap的键是“弱键”。

有了上面的总体框架之后,我们先来看看各个接口和抽象类的介绍;后面再对各个实现类进行详细说明。

1 Map
Map的定义如下:

代码如下:

public interface Map { }

Map 是一个键值对(key-value)映射接口。Map映射中不能包含重复的键;每个键最多只能映射到一个值。
Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。
Map 映射顺序。有些实现类,可以明确保证其顺序,如 TreeMap;另一些映射实现则不保证顺序,如 HashMap 类。
Map 的实现类应该提供2个“标准的”构造方法:第一个,void(无参数)构造方法,用于创建空映射;第二个,带有单个 Map 类型参数的构造方法,用于创建一个与其参数具有相同键-值映射关系的新映射。实际上,后一个构造方法允许用户复制任意映射,生成所需类的一个等价映射。尽管无法强制执行此建议(因为接口不能包含构造方法),但是 JDK 中所有通用的映射实现都遵从它。

Map的API
代码如下:

abstract void                 clear()
abstract boolean              containsKey(Object key)
abstract boolean              containsValue(Object value)
abstract Set     entrySet()
abstract boolean              equals(Object object)
abstract V                    get(Object key)
abstract int                  hashCode()
abstract boolean              isEmpty()
abstract Set               keySet()
abstract V                    put(K key, V value)
abstract void                 putAll(Map

    
 
 

您可能感兴趣的文章:

  • 开源的Java EE架构 ape-j
  • java使用任务架构执行任务调度示例
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 怎么没有讨论XML的?哪位高手介绍介绍在JAVA中怎么使用XML?
  • java命名空间java.beans接口propertyeditor的类成员方法: getvalue定义及介绍
  • 急!!谁了解macintosh?能不能给我介绍介绍?是不是跟linux差不多?使用开发工具JDK,这是不是不JAVA?
  • java命名空间java.awt类container的类成员方法: getlayout定义及介绍
  • 各位高手,我初学java,以前是学VB的,请介绍一下学习java的经验
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请大家介绍一下java BEAN的入门读物吧
  • java命名空间java.beans类defaultpersistencedelegate的类成员方法: defaultpersistencedelegate定义及介绍
  • 能否介绍几本Java的好书
  • java命名空间java.text类decimalformat的类成员方法: topattern定义及介绍
  • 介绍本学 JAVA的好书怎么样?请注明出版社
  • java命名空间java.sql类types的类成员方法: null定义及介绍
  • 介绍一些学习JAVA SWING 方面的好书.
  • java命名空间java.awt类awtevent的类成员方法: id定义及介绍
  • 哪里有Java 2D Graphics方面的介绍?
  • java命名空间java.text类choiceformat的类成员方法: choiceformat定义及介绍
  • 谁能告诉我哪里能找到java包内部类及方法使用介绍
  • java命名空间java.sql类driverpropertyinfo的类成员方法: value定义及介绍
  • 请问那里有java控制图形的介绍和代码?
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: isrepresentationclassinputstream定义及介绍
  • 介绍一本Java好书
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何学习java API,~~~~请教
  • Java(tm) Communications API 的古怪问题
  • java api
  • Java程序监控API Java Simon
  • Java图表API GoogleChartWrapper
  • Java高手看过来:如何在JBuilder5.0 Enterprise中配置Java communication API?(急!!!)
  • Facebook Java API
  • 请问java 上 API是什么东东?
  • google-api-translate-java
  • 屏幕抓取API的Java库程序 JxCapture
  • JAVA虚拟机是不是也要调用Windows的API?
  • 我想在java里调用windows API,应该怎么做
  • Discuz Ucenter API for Java
  • 谁有JAVA API DOC?
  • github-java-api
  • Amazon S3的Java API JetS3t
  • Google API for Java
  • jdk Note: testsqlserver.java uses or overrides a deprecated API.
  • Java/JavaScript API 的 C++ 实现 libj
  • Java可以调用Win32API和COM的东西吗?-netix
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • WEB前端 iis7站长之家
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3