`

Map集合

 
阅读更多

 

 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)
       size()
       values()

 

       

                       重要方法 

       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());
    }
}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics