必威体育Betway必威体育官网
当前位置:首页 > IT技术

Map接口实现类HashMap、Map.Entry接口

时间:2019-08-16 08:44:18来源:IT技术作者:seo实验室小编阅读:66次「手机版」
 

map.entry

来谈谈集合中的Map接口,它常用的实现类为HashMap。

这里写图片描述

Map接口


  • 除了类集,java 2还在java.util中增加了映射。 映射(map)是一个存储关键字和值的关联 或者说是关键字/值对的对象。给定一个关 键字,可以得到它的值。关键字和值都是 对象。关键字必须是唯一的。但值是可以 重复的。有些映射可以接收null关键字和 null值。而有的则不行
  • Map接口映射唯一关键字到值。关键字(key)是 以后用于检索值的对象。给定一个关键字和一个 值,可以存储这个值到一个Map对象中。当这个 值被存储以后,就可以使用它的关键字来检索它。 当调用的映射中没有项存在时,其中的几种方法 会引发一个NoSuchElementException异常。而当对 象与映射中的元素不兼容时,引发一个 classcastexception异常。如果试图使用映射不允 许使用的null对象时,则引发一个 NullPointerException异常。当试图改变一个不允 许修改的映射时,则引发一个 UnsupportedOperationException异常
  • 映射循环使用两个基本操作:get( )和put( )。使用 put( )方法可以将一个指定了关键字和值的值加入 映射。为了得到值,可以通过将关键字作为参数 来调用get( )方法。调用返回该值。
  • 映射不是类集,但可以获得映射的类集“视图”。 为了实现这种功能,可以使用entrySet( )方法,它 返回一个包含了映射中元素的集合(Set)。为了 得到关键字的类集“视图”,可以使用keySet( ) 方法,返回一个Set集合不可以重复。为了得到值的类集“视图”,可以使用 values( )方法,返回一个Collection集合,可以重复。类集“视图”是将映射集成到类集 框架内的手段
import java.util.Iterator;
import java.util.Set;

public class Maptest3
{
    public static void main(String[] args)
    {
        HashMap map = new HashMap();

        map.put("a", "aa");
        map.put("b", "bb");
        map.put("c", "cc");
        map.put("d", "dd");
        map.put("e", "ee");
        System.out.println(map);

        Set set = map.keySet();

        for(Iterator iter = set.iterator(); iter.hasNext();)
        {
            String key = (String)iter.next();
            String value = (String)map.get(key);

            System.out.println(key + "=" + value);
        }
    }
}
a=aa
b=bb
c=cc
d=dd
e=ee

遍历Map的两种方式,一种是直接打印输出,另一种是利用Set集合中的iterator();方法,首先调用Map的keySet()方法返回一个Set集合,通过Set集合中key的值可以得到value的值。

HashMap


HashMap类使用散列表实现Map接口。这允 许一些基本操作如get( )和put( )的运行时间 保持恒定,即便对大型集合,也是这样的 下面的构造函数定义为:

- HashMap( )

- HashMap(Map m)

- HashMap(int capacity)

- HashMap(int capacity, float fillRatio)

第一种形式构造一个默认的散列映射。

第二种形式用m的元素初始化散列映射。

第三种形式将散列映射的容量初始化为 capacity。

第四种形式用它的参数同时初始化散列映 射的容量和填充比。容量和填充比的含义 与前面介绍的HashSet中的容量和填充比相同。

HashMap实现Map并扩展AbstractMap。它 本身并没有增加任何新的方法

应该注意的是散列映射并不保证它的元素 的顺序。因此,元素加入散列映射的顺序 并不一定是它们被迭代函数读出的顺序

Map.Entry


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

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapTest5
{
    public static void main(String[] args)
    {
        HashMap map = new HashMap();

        map.put("a", "aa");
        map.put("b", "bb");
        map.put("c", "cc");
        map.put("d", "dd");

        Set set = map.entrySet();

        for(Iterator iter = set.iterator(); iter.hasNext();)
        {
            Map.Entry entry = (Map.Entry)iter.next();

            String key = (String)entry.getKey();
            String value = (String)entry.getValue();

            System.out.println(key + " : " + value);
        }
    }
}
a : aa
b : bb
c : cc
d : dd

Entry对象里面封装了key和value。

Map是key和value的映射,在Map里面key和value并不是单独存放的,在底层会生成一个entry对象,entry对象里面封装了value和key,所以获得了entry对象就可以同时获得key和value。

相关阅读

泛型——(2)泛型类、泛型方法、泛型接口

一、泛型类 定义Person类 package cn.itcast.p2.bean; public class Person implements Comparable<Person> { private Stri

MapReduce详解

目录 1 MapReduce原理 1.1 为什么要MapReduce 1.2 MapReduce框架结构及核心运行机制 1.2.1 结构 1.2.2 MR程序运行流程 1.3 MapT

USB接口定义

USB接口标准 USB是电脑的常见接口,有4根线,两根电源线和两个信号线,电源线正负极供电,接烦可能导致USB设备或电脑的南桥芯片烧坏。 t

CreateFileMapping实现的共享内存及用法

在32位的Windows系统中,每一个进程都有权访问他自己的4GB(232=4294967296)平面地址空间,没有段,没有选择符,没有near和far指针,没有near

java之接口实例化

1 接口无法进行实例化。不过接口可以通过匿名接口来操作。直接实现一个接口。但是是匿名的如:public interface Test1Interface {p

分享到:

栏目导航

推荐阅读

热门阅读