JAVA中的Map(散列表/哈希表)
@简述:Map是Java中一种重要的数据结构,允许用户以键值对的形式存储数据。
@特点:是世界上查询速度最快的数据结构
@Map的定义方式
import java.util.HashMap;import java.util.Map;/** * Map源码:public interface Map* HashMap是Map经常使用的一种实现类 * * @author 86135 * */public class sdf { public static void main(String[] args) { Map map = new HashMap (); }}
在说Map之前我们先来看看两个实际中的例子:
1:有一个嫌疑犯逃到了一个酒店,准备在酒店住上一晚。假设这个酒店有100层,每层100间房。这时嫌疑犯准备入住,然后酒店管理员说:“我们这有这么多房间,你可以自己随便选一间空的住。”因为是嫌疑犯自己去挑的房间,所以管理员自己也不知道嫌疑犯最终是住在哪一间房。然后嫌疑犯就在众多房间中挑了一间自己喜欢的房间。接着,警察来了。准备在该酒店搜捕嫌疑犯,假设这时依然没有人知道嫌疑犯的具体位置。所以警察就只能一间一间地排查,直到找到嫌疑犯的那间房才可以找到他。虽然最终肯定也可以找到
嫌疑犯,但是这样的方式无疑会消耗大量的时间,效率极其低下。
2:还是上面的例子,我们换一种方式来讲。依然是一个嫌疑犯,逃到酒店准备入住。但是这次不一样,当嫌疑犯准备入住酒店的时候,酒店管理员说:“好的,先生,请您先出示您的身份证,让我们登记一下。”于是嫌疑犯登记了身份证,并且,酒店管理员给他分配了一个房间。然后嫌疑犯拿着房卡,去到了指定的
那个房间。同样的,这是警察又来了。然后警察掏出了嫌疑犯的身份证去问酒店管理员,这里有没有入住这个人,如果有告诉我们他住在哪一间房。酒店管理员,根据身份证一查,马上反馈了嫌疑犯的具体位置地址。然后警察根据这个位置地址立刻就找到了嫌疑犯。速度极快。
为什么要说这两个例子呢?当然是跟我们伟大的Map有关啦。
下面让我们来看Map存取数据的一个分析图:
图 1-1 哈希表存取数据规则
简单说一下过程:
先说明一些概念:
哈希表:是一种数据结构
散列算法:是实现哈希表的核心算法,是一种算法
前面讲过,Map中是存放键值对数据的。每一个元素都是一个键值对,即:Entry(key,value);
待续....