Map :存储的是键值对,一对一对出现的,要保证键的唯一性.
Map常见的三个子类.
1.HashTable 底层是哈希表结构,不能存在null的情况.该集合是线程同步的.效率低
此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。
2.HashMap 底层是哈希表数据结构,允许null值和null键,该集合不同步. 效率高
3.TreeMap 底层是二叉树结构, 线程不同步,具备排序的特点.可以给Map集合中的键排序.
与Set很像,Set集合的底层就是使用了Map集合方法.
Map其共性方法有:
1.添加
put()
putAll()
2.删除
clear();
remove();
3.判断
containsValue(Object value)
containsKey(Object key)
isEmpty();
4.获取
get();
size();
values();Map的重点方法:
entrySet()
KeySet()
这两种方法就是Map集合取出元素的方式:
Map集合两种取出方式:
1.Set<k> keySet
将Map中所有的键存入到Set集合.Set具备迭代器,可以用迭代取出所有的键.
在根据get方法,获取每个键所对应的值.
Map集合取出原理:转成Set集合.在通过迭代器取出.
2.Set<Map.Entry<k,v>> entrySet
将map集合中的 映射关系 存入到Set集合中,这个关系的数据类型是 : Map.Entry
其中Entry其实是一个内部接口.定义在map接口里面
格式如下:
interface Map
{
public static interface Entry
{
public static void getValue();
public static void getKey();
}
}
class HashMap implements Map
{
class Hash implements Map.Entry
{
public Object getValue(){};
public Object getKey(){};
}
}
|
|