Map接口

本文详细介绍了Map接口及其子类,如HashMap、HashTable等的基本特性和使用方法,并解释了这些集合如何存储键值对数据,以及它们之间的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Map接口:是集合框架中的另一个父接口
Map集合,用于存储一一对应的元素数据,第一个对象可以作为索引,第二个对象作为值,我们称之为key-value,键值对
存储数据的特点:
(1)以key-value形式进行存储
(2)key与value都必须是引用类型
(3)key可以为null
(4)key与value是单向一对一映射
(5)key不能重复
存储机制:
Map是基于数组和链表的数据结构进行存储数据。
作为key的对象采用了Hash算法计算存储的数组(散列数组,散列桶)的位置,如果计算出来的位置,数组中此位置没有元素,就可以添加到散列桶内,如果有元素,key的equals方法返回值为false,就会存储在散列桶元素对应的单向链表中
如果key的equals方法返回为true,就进行替换(覆盖)
ps:使用Map集合,作为key的数据类型应该重写equals方法和HashCode方法
常用方法:
V put(K k,V v):
作用:用于存储一对key-value. 返回被替换的value值
如果不是替换就返回null
V get(K k):
作用:通过key对象,获取对应的value对象,如果集合中
没有此key,返回null
Map集合的遍历
Set keySet();
用于获取Map中所有的key对象,返回一个Set集合
Set

}

Map接口的子类:

HashMap与HashTable的区别
(1)HashTable是一个古老的类。不建议使用
(2)HashTable是一个线程安全的类,HashMap线程不安全
(3)HashTable的key不能是null,HashMap可以是null
LinkedHashMap:是HashMap子类,使用链表来维护key-value的
顺序,在迭代时顺序与添加顺序一致。
TreeMap:
是SortedMap子接口的实现类,使用了二叉树的数据结构维护
填入集合的顺序。
(1)自然排序:
往TreeMap里添加的key对象,可以实现Comparable接口。重写
compareTo方法
(2)定制排序:做为key对象的数据类型,可以不实现Comparabel接口。
需要创建一个比较器Comparator对象。实现compare方法
Properties:
是HashTable的子类型,用于封装属性文件的key-value信息
因为在文件里写的都是字符串,因此Properties的key与value
都是字符串类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值