Map

来源:互联网 发布:尹成c语言网盘 2016 编辑:程序博客网 时间:2024/06/08 13:27

1.Map集合:该集合存储的是键值对,一对一对来存,而且要保证键的唯一性。(将键映射到值的对象,一个映射不能包含重复的键,一个键只能映射一个值)


2.Map:  ⒈HshTable 底层是哈希表数据结构,支持同步,不可以存入null键和null值,

⒉HashMap 底层是哈希表数据结构,不支持同步,可以存入null键和null值,(替代了HashTable,比HashTbale效率高)

⒊TreeMap 底层是二叉树数据结构,不支持同步,可以给集合中的键进行排序。


3.Map和Set很像,其实Set底层就是使用了Map。


4.基本方法:

⒈clear();清除所有映射。

⒉containsKey(Object key);判断是否包含指定的键

⒊containsValue(Object value);判断是否包含指定的值

⒋values();返回一个Collection集合,集合中包含该映射的所有值

⒌get(key);获取指定键的值

⒍isEmpty();判断该映射是否为空

⒎put(key,value);将指定的值与此映射中指定的键关联,返回键以前关联的值,若键第一次关联则返回null

⒏putAll(Map<? extends key, ? extends value>);

⒐remove(Object key);如果存在指定键的映射关系,则将其从此映射中移除,返回键以前关联的值,如果没有key的映射关系,则返回null

10.keySet();返回此映射中包含键的Set视图,(其实就是返回一个Set集合,该集合中包含映射中所有的键)

11.entrySet();返回此映射中包含映射关系的Set视图,其类型为Map.Entry<key,value>

注:Map.Entry其实是一种类型,通过Set集合迭代出每一个Map.Entry,然后通过Map.Entry中特有方法getKey() getValue()来获取键和值,也可以通过setValue(V value) 来更改值。


5.Map集合取出的原理:将Map转化为Set集合,再通过迭代器取出数据。


6.当发现有映射关系的数据进行存储时,可以选择Map集合。


7.Map集合的扩展:Map集合中,映射关系中还具有映射关系的类型;

例如一个国家有多个省,每个省有多个市,每个市又有多个县;

Map<Province,Map<City,County>> map = new HashMap<Province,Map<City,County>>();


注:要保证键的唯一性,自定义类要重写hashCode() equals()

0 0