本帖最后由 huanxiang0220 于 2015-2-23 03:20 编辑
Map(和Collection接口同级的接口)集合
1.简述:该集合用于存储键值对,一对一对的往里存,但要保证键的唯一性 2.Map接口的子类对象 |--HashTable:底层是哈希表数据结构,不可以存入null键和null值,线程同步,效率低 |--HashMap:底层是哈希表数据结构,可以存入null键和null值,线程不同步,效率高 |--TreeMap:底层是二叉树数据结构,线程不同步,可以对Map集合中的元素进行排序 和set接口的集合很像,事实上set集合底层就是用了Map集合 3.共性方法 - (1)增加
- put(Key key,Value value)
- putAll(Map<? extends k,? extends v>m)
- (2)删除
- clear()
- remove(Object key)
- (3)判断
- containsValue(Object value)
- containsKey(Object key)
- (4)获取
- get(Object key)
复制代码重要方法 Set<key> keySet(): 将Map中的所有键存入到set集合中,因为set具备迭代器 所有通过迭代器方式取出的键,都可通过get()方法来获取对应的值 Set<Map.Entry<K,V>> entrySet(): 将Map集合中的所有映射关系存入到set集合中,而这个关系的数据类型就是:Map.Entry - public class MapDemo {
- public static void main(String[] args) {
- Map<String, String> map=new HashMap<String, String>();
- //添加元素时,如果添加的key相同,则key对应的后面的value值会覆盖前面的旧值,并且,put()方法
- //会返回原来的旧值,和新添加的新值
- /* System.out.println( map.put("01","张三旧值"));
- System.out.println( map.put("01","张三新值"));*/
- map.put("01","张三");
- map.put("02","李四");
- map.put("03","王五"); //System.out.println(map);
-
- //将map集合中的映射关系取出,存入到Set集合中
- Set<Map.Entry<String, String>> mapEntries=map.entrySet();
- Iterator<Map.Entry<String, String>> iterator=mapEntries.iterator();
- while(iterator.hasNext())
- {
- Map.Entry<String, String> meEntry=iterator.next();//获取Set集合中的映射关系
- String key=meEntry.getKey();//获取映射关系中的key值
- String value=meEntry.getValue();//获取映射关系中的value值
- System.out.println(key+" : "+value);
-
- }
- // Map.Entry其实也是一个接口,是Map接口中的内部接口
- /* //keySet()方法,获取所有的key集合,并存入到set集合中
- Set<String> set=map.keySet();
- Iterator<String> iterator=set.iterator();
- while(iterator.hasNext())
- {
- String key=iterator.next();
- System.out.println("key:"+key+" value: "+map.get(key));
- }*/
-
- /* 是否包含指定的键
- System.out.println(map.containsKey("02"));
- 是否包含指定的值
- System.out.println(map.containsValue("张三"));
- 通过key获取value。可以通过get来判断值是否存在
- System.out.println(map.get("03"));
- 获取集合的长度
- System.out.println(map.size());
- 获取集合的所有值
- System.out.println(map.values());
- 通过key删除元素 注意:删除后返回删除成功后的值
- System.out.println("remove:"+map.remove("03"));//返回王五
- 清除集合中的所有元素
- map.clear();
- System.out.println(map.values());
- map.putAll(map2);
- System.out.println(map.values());
- }
复制代码
|
|