java.util.Map<K,V> 双列集合的顶层接口
K:key 键,键是唯一的
v:value 值,只可以重复
key和value统称键值对
方法
put(K key,V value)向map集合中添加键值对元素 一般情况下返回值都是null,如果键相同时,添加元素会被覆盖并返回被覆盖的值
get(Object key) 根据键找值
remove(Object key) 删除一对元素,并返回被删除的值
常用实现类
TreeMap 键排序 唯一
HashMap 键无序 唯一
LinkedHashMap 键有序 唯一
Map集合的遍历
第一种方法
键找值 Set<K> keySet() 获取到存储所有键的Set集合
1.创建Map集合,添加数据
2.调用keySet()方法 获取到存储所有键的set集合
3.遍历Set集合 依次获取到每个元素
4.调用Map集合get方法,根据key找到对应的值
第二种方法
通过键值对的关系对象 遍历
Set<Map.Entry<k,v>> entrySet() 获取所有键值对关系对象的set集合
1.创建集合对象 存储元素
2.调用entrySet方法 获取所有键值对关系对象的set集合
3.遍历Set集合 依次获取到每个键值对关系对象
4.通过键值对关系对象 getKey getValue方法 获取到对应的键和值
HashMap集合
存储自定义类型当做键
自定义类型需要重写hashCode和equals方法,因为要保证键的元素唯一
TreeMap
Treemap需要键实现自然排序接口,因为要满足treeMap的特性,排序
如果是没有自然排序的键,可以传入比较器对象,一旦传入了比较器对象,不管是否实现了自然排序接口,也会按照传入的比较器规则来排序,比较器要重写compare方法.
TreeMap的特有方法
public TreeMap(Map<? extends k , ? extnds V > m) 将传入的map集合中的元素自动添加到TreeMap集合中
public k firstKey(): 返回此映射中当前第一个键(最小值)
public k lastKey(): 返回此映射当前最后一个键(最大值)
public k ceilingKey(K key): 返回大于等于给定键的最小键,如果不存在这样的键,则返回null
java.util.Properties
特点:
1.继承自hashtable 底层数据结构是哈希表 可以使用Map接口的所有方法
2.没有泛型 键和值都是固定的数据类型string
3.唯一一个可以和IO流结合使用的集合
特有方法
String setProperty(String key, String value) 添加元素 相当于 put
String getProperty(String key) 根据键找值 相当于get
set<String> stringPropertyNames() 获取所有键的set集合 相当于keySet