Map集合(和Collection同级别)
1,概述
接口Map<K,V>à映射关系
K:(key)此映射所维护键的类型。
V:(value)映射值的类型。
不能有重复的键,一个键只能映射一个值
Collection装的是一个单身汉(单列集合),Map里面装的是一对小夫妻(双列集合)。
2,方法
1, 增
a) V put(K key,V value)à返回的是该键原先对应的值,后添加的值会覆盖原有的值
b) putAll(Map)
2, 删
a) void clear()
b) remove(Key)
3, 改
a)
4, 查
a) boolean containsKey();
b) boolean containsValue();
c) boolean isEmpty();
d) get(key)à可以判断一个键是否存在
e) Collection <V> values()
f) entrySet()
g) Set<K> keySet()将map中所有的键都存入到set集合,再通过迭代方式取出所有的键,再通过get方法取出对应的值
h) Set<Map.Entry<K,V>> entrySet() 将map集合的映射关系存入到了set集合中,而这个关系的数据类型就是:Map.Entry
map集合的取出原理:将map集合转成set集合,再通过迭代器取出
其实Entry也是一个接口,他是map接口的一个内部接口
interface Map
{
static interface Entry
{
public abstract Obejct getKey()
public abstract Object getValue()
}
}
3,子类
Map
|--HashTable:此类实现一个哈希表,该哈希表将键映射到相应的值,任何非Null对象都可以用作键或值,底层是哈希表结构。该集合是线程同步的。(过时了)
|--HashMap:底层是哈希表数据结构,允许使用null值和null键,该集合是不同步的
|--TreeMap:底层是二叉树,线程不同步,可以用于给map集合中的键进行排序,和set很像,set底层就是使用了map集合
4,Map集合的扩展知识
map集合使用是因为具备映射关系
如何实现1对多的关系?????
---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------