JAVA_Map

JAVA中的Map(散列表/哈希表)

@简述:Map是Java中一种重要的数据结构,允许用户以键值对的形式存储数据。

@特点:是世界上查询速度最快的数据结构

@Map的定义方式

import java.util.HashMap;
import java.util.Map;
/**
 * Map源码:public interface Map<K,V>
 * HashMap是Map经常使用的一种实现类
 * 
 * @author 86135
 *
 */
public class sdf {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<String,String>();
    }

}

 

 

在说Map之前我们先来看看两个实际中的例子:

1:有一个嫌疑犯逃到了一个酒店,准备在酒店住上一晚。假设这个酒店有100层,每层100间房。这时嫌疑犯准备入住,然后酒店管理员说:“我们这有这么多房间,你可以自己随便选一间空的住。”因为是嫌疑犯自己去挑的房间,所以管理员自己也不知道嫌疑犯最终是住在哪一间房。然后嫌疑犯就在众多房间中挑了一间自己喜欢的房间。接着,警察来了。准备在该酒店搜捕嫌疑犯,假设这时依然没有人知道嫌疑犯的具体位置。所以警察就只能一间一间地排查,直到找到嫌疑犯的那间房才可以找到他。虽然最终肯定也可以找到

嫌疑犯,但是这样的方式无疑会消耗大量的时间,效率极其低下。

 

 

2:还是上面的例子,我们换一种方式来讲。依然是一个嫌疑犯,逃到酒店准备入住。但是这次不一样,当嫌疑犯准备入住酒店的时候,酒店管理员说:“好的,先生,请您先出示您的身份证,让我们登记一下。”于是嫌疑犯登记了身份证,并且,酒店管理员给他分配了一个房间。然后嫌疑犯拿着房卡,去到了指定的

那个房间。同样的,这是警察又来了。然后警察掏出了嫌疑犯的身份证去问酒店管理员,这里有没有入住这个人,如果有告诉我们他住在哪一间房。酒店管理员,根据身份证一查,马上反馈了嫌疑犯的具体位置地址。然后警察根据这个位置地址立刻就找到了嫌疑犯。速度极快。

 

为什么要说这两个例子呢?当然是跟我们伟大的Map有关啦。

下面让我们来看Map存取数据的一个分析图:

                                         

                                  图 1-1  哈希表存取数据规则

 简单说一下过程:

先说明一些概念:

哈希表:是一种数据结构

散列算法:是实现哈希表的核心算法,是一种算法

 

前面讲过,Map中是存放键值对数据的。每一个元素都是一个键值对,即:Entry(key,value);

待续....

 

posted @ 2018-10-21 21:26  NULL_ROOT  阅读(150)  评论(0编辑  收藏  举报