一.Map集合
|--Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。JDK1.0,效率低。
|--HashMap:底层是哈希表数据结构,允许使用null值和null值,该集合是不同步的。JDK1.3,效率高。
|--TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。
和Set很像。
其实大家,Set底层就是使用了Map集合。
二. Map集合:该集合存储键值对。一对一往里存。而且要保证键的唯一性。
1.添加
put(K key,V value)
putAll(Map<? extends K,? extends V> m)
2.删除
clear();
remove(Object key);
3.判断
containsValue(Object value);
containsKey(Object key);
4.获取
get(Object key);
size();
values();
entrySet();
keySet();
三.Map集合的两种取出方式:
1.Set<k> keySet;将Map中所有的键存入到Set集合。因为Set具备各迭代器。
所有可以用迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。
Map集合的取出原理:将map集合转成set集合。在通过迭代器取出。
2.entrySet;
Set<Map.Entry<k,v>>
entrySet:将map集合中的映射关系存入到set集合中,而这个关系的数据类型就Map.Ectry
Map.Entry:其实也是一个借口,它是Map接口中的一个内部接口。
对于Map.Entry的代码实现关系解释:
interface Map{ //实现Map接口
public static interface Entry{//定义内部接口,静态
public abstract Object getKey();
public abstract Object getValue();
}
}
class HashMap implements Map{ //实现接口
class Hash implements Map.Entry{//实现Map内部中的接口
public Object getKey() {
return null;
}
public Object getValue() {
return null;
}
}
} |
|