Java 映射Map

版权声明:转载请随意! https://blog.csdn.net/qq_41723615/article/details/89280760

数学中映射有:一对一映射,多对一映射,但是没有一对多映射。

定义:

两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,b称为元素a在映射f下的,记作:b=f(a)。a称为b关于映射f的原象集合A中所有元素的象的集合称为映射f的值域,记作f(A)。

或者说,设A,B是两个非空的集合,如果按某一个确定的对应关系f,使对于集合A中的任意一个元素x,在集合B中都有唯一的元素y与之对应,那么就称对应f:A→B为从集合A到集合B的一个映射。

注意:(1)对于A中不同的元素,在B中不一定有不同的象;(2)B中每个元素都有原象(即满射),且集合A中不同的元素在集合B中都有不同的象(即单射),则称映射f建立了集合A和集合B之间的一个一一对应关系,也称f是A到B上的一一映射。

示例:

   

总结:

存储(键、值)数据对的数据结构(key、value)。

根据键(key),寻找值(value)。

非常容易使用链表或者二分搜索树来实现。

原先的链表定义与二分搜索树的定义:

改变为映射关系:

映射map的定义:

下面对每个方法进行解释:

    void add(K key, V value):添加元素需要提供key、value。
    V remove(K key):删除一个元素,只需要删除它的key即可,然后返回该key下的value。
    boolean contains(K key):根据key查找元素。
    V get(K key):通过查找key,来取得value。
    void set(K key, V newValue):修改操作,给定一个key,设置新的value。
    int getSize():map存储了多少个数据。
    boolean isEmpty():map是否为空。

猜你喜欢

转载自blog.csdn.net/qq_41723615/article/details/89280760