双例集合Map

Map:采用key_value存储数据,

 Map接口:存储的是一对一对的数据,采用key-value存放
      |---->HashMap:主要实现类,线程不安全,效率高;允许添加null的key或null的value
            |------>LinkedHashMap:HashMap的子类,可以实现按照添加1的顺序实现遍历
                     对于频繁的遍历操作,建议使用此接口实现类
    |---->TreeMap:可以按照元素的指定属性的大小实现遍历
    |---->HashTable:古老实现类.线程安全,效率低,不允许添加null的key或null的value
           |---->properties:常用来处理属性文件,key和value都是String类型

  Map的结构:<1.Map中的key是无序的,不可重复的,key构成的集合是Set
                <2.Map中的value是无序的,可以重复的,value构成的集合是Collection
                <3.Map中的键值构成一个entry
                <4.Map中的entry是一个set集合,无序,不可重读的

Map的常用方法:
  :put(Object key, Object value)将指定的key-value添加到map对象 ,putAll(Map m)将m中的所有键值对返回map中去
  :remove(Object,key)指定移除对应key的key-value对,并返回value
  :put(Object key,Object value)将指定的key-value修改到map对象
  :get(Object key):获取指定key的value containsValue(Object value)是否包含指定的value
  长度:size()
  遍历:KeySet()返回所有key构成的set集合 values()返回所有Value值构成的Collection集合  enterySet()返回所有的key-      vlaue构成的set集合

HashMap:

         HashMap的底层实现
              jdk7:数组+单向链表
      HashMap map =new HashMap();//entry[] table=new Entry[16];
  ........
      map.put(key1,vlaue1);//key1-value1会封装到一个entry对象中,将此对象放于table数组中
 
              jdk8:数组+单向链表+红黑树

HashMap的常用方法:

    @Test
    public void test() {
        Map map =new HashMap<>();
        Map map1=new TreeMap<>();
    
        //增,put()
        map.put("aa", 98);
        map.put("bb", 948);
        map.put("vv", 938);
        map.put("dd", 928);
        map.put("gg", 918);
        System.out.println(map);
        //改put()
        map.put("aa", 111);
        System.out.println(map);
        //删remove()
        map.remove("gg");
        System.out.println(map);
        //查get()
        System.out.println(map.get("aa"));
            
    }
    @Test
    public void test1() {
        Map map =new HashMap<>();
        //增,put()
        map.put("aa", 98);
        map.put("bb", 948);
        map.put("vv", 938);
        map.put("dd", 928);
        map.put("gg", 918);
        
        //返回所有的key构成的Set集合
        Set keySET=map.keySet();
        System.out.println(keySET);
            //遍历key构成的Set集合
        Iterator it=keySET.iterator();
        for (Object object : keySET) {
            System.out.println(object);
        }
                
        //返回所有value构成的Collection集合
        Collection c=map.values();
        //遍历values构成的Collection集合
        Iterator it1=c.iterator();
        while (it1.hasNext()) {
            System.out.println(it1.next());
            
        }
        
        //返回键值对构成的Set集合
        Set s=map.entrySet();
        Iterator it2=s.iterator();
        for (int i = 0; i < s.size(); i++) {
            System.out.println(it2.next());
        }
    }

猜你喜欢

转载自www.cnblogs.com/ylblikestudyJava/p/12396712.html