Map集合

来源:互联网 发布:网络接入设备集线器 编辑:程序博客网 时间:2024/06/03 23:42

注意:
看到array,就要想到角标。看到link,就要想到first,last。看到hash,就要想到hashCode,equals,看到tree,就要想到两个接口(Comparable和Comparator)

Map和Collection在集合框架中属并列存在。
1:Map存储的是键值对
2:Map存储元素使用put方法,Collection使用add方法
3:Map集合中没有直接取出元素的方法,而是转为Set集合,再通过迭代获取元素
4:Map集合中键要保持唯一性。
换句话说,Collection是单列集合,Map是双列集合

总结:
Map一次存入一对元素,Collection一次存一个,Map的键不能重复,保证唯一。
Map一次存入一对元素,是以键值对的形式存在。键与值存在映射关系,一定要保证键的唯一性。

Map的常用方法
1:添加
V put(K key, V value) (可以相同的key值,但是添加的value值会覆盖前面的,返回值是前一个,如果没有就返回null)
putAll(Map m) 从指定映射中将所有映射关系复制到此映射中(可选操作)。
2:删除
remove() 删除关联对象,指定key对象
clear() 清空集合对象

3:获取
value get(key) 可以用来判断键是否存在的情况。当指定的键不存在的时候,返回的是null

4:判断
boolean isEmpty() 长度为0返回true否则false
boolean containsKey(Object key)判断集合中是否包含指定的key
boolean containsValue(Object value) 判断集合中是否包含指定的value

5:长度
int size()

6:获取功能
获取功能
Set<Map.Entry<K,V>> entrySet():
V get(Object key):根据键获取值
Set<K> keySet():获取集合中所有键的集合
Collection<V> values():获取集合中所有值的集合

示例:

public class MapDemo {    public static void main(String[] args) {// 创建集合对象    Map<String, String> map = new HashMap<String, String>();// 添加元素// V put(K key,V value):添加元素。这个其实还有另一个功能?先不告诉你,等会讲// System.out.println("put:" + map.put("文章", "马伊俐"));// System.out.println("put:" + map.put("文章", "姚笛"));map.put("邓超", "孙俪");map.put("黄晓明", "杨颖");map.put("周杰伦", "蔡依林");map.put("刘恺威", "杨幂");// void clear():移除所有的键值对元素// map.clear();// V remove(Object key):根据键删除键值对元素,并把值返回// System.out.println("remove:" + map.remove("黄晓明"));// System.out.println("remove:" + map.remove("黄晓波"));// boolean containsKey(Object key):判断集合是否包含指定的键// System.out.println("containsKey:" + map.containsKey("黄晓明"));// System.out.println("containsKey:" + map.containsKey("黄晓波"));// boolean isEmpty():判断集合是否为空// System.out.println("isEmpty:"+map.isEmpty());//int size():返回集合中的键值对的对数System.out.println("size:"+map.size());// 输出集合名称System.out.println("map:" + map);    }}

注意:Map没有迭代器,所以想取出map中的所有元素必须通过keySet()方法获取map中所有的键所在的set集合,再通过set的迭代器获取每一个键,再对每一个键通过map集合的get()方法获取其对应的值即可。

Map集合:keySet()方法
之前讲Mpa集合时,Map集合是用来存储一对key-value两个对象,既然存储的是两个对象,那么能不能只获取其中一个所有对象?
可以。Map集合属于双列集合,里面有两个单列集合。

问题:Map中的key对象,Map应该使用哪个集合存储?
key必须保证唯一性(不能重复),使用Set集合存储。

Map中的keySet方法:获取Map集合中所有的key对象

Map集合:entrySet()方法
Map集合中存储的是一对key-value的映射关系(对应关系 、键值关系)
映射关系:key-value对应关系。

映射关系在底层代码上怎么体现:Map.Entry来存储key-value映射关系

Map集合的entrySet方法:获取Map集合中所有的key-value映射关系

映射关系类型:Map.Entry

map集合:values()方法
之前使用keySet方法可以获取 Map集合中的的所有key对象,而values方法就是获取Map集合中的的所有value对象

Map集合的values对象:获取集合中所有的value

参考博客:http://www.cnblogs.com/lwlxqlccc/p/6143887.html