Map集合

来源:互联网 发布:软件开发项目风险 编辑:程序博客网 时间:2024/05/16 12:11

Map集合

特点:      该集合存储键值对。一对一对往里存,而且要保证键的唯一性。

 

方法

     添加

                i.         put(K key, V value)

返回的V,为之前同键的值。

               ii.         putAll(Map<? extends K , ?extends V> M)

     删除

                i.         clear():清空

               ii.         remove()

     判断

                i.         containsValue(Object value);

               ii.         containsKey(Object key);

              iii.         isEmpty();

     获取

get(Object key)

可以通过get方法的返回值来判断一个键是否存在,通过返回null来判断

size()

values()

获取map集合中所有的值,返回的是collection集合。并且有泛型,需指定类型

 

Set<Map.Entry<k,v>> entrySet()

map集合中的映射关系存入到set集合中,而这个关系的数据类型就是map.Entry.

首先将Map集合中的映射关系取出,存入到Set集合中。例:

Set<Map.Entry<String,String>> entrySet =map.entrySEt();

 

Map.Entry:其实Entry也是一个接口,它是Map接口中的一个内部接口。

 

Set<K> keySet()

Map中所有的键存入到Set集合。因为Set集合具备迭代器,所以可以通过迭代方式取出所有的键,再根据get方法,获取每一个键对应的值。

 

 

Map的子类

     Hashtable

底层是哈希表的数据结构,不存入null键和null值。该集合是线程同步的。

     HashMap

底层是哈希表的数据结构,允许使用null键和null值,该集合是不同步的。

     TreeMap

底层是二叉树的数据结构,线程不同步。可以用于给map集合中的键进行排序。

      

       Set底层就用使用的Map集合

 

       当存入同键的值时,会替换之前的同键的值。

 

       当发现有映射关系时,可以选择Map集合,因为map集合中存放就是映射关系。

 

map扩展知识

map集合被使用是因为具备映射关系。

 

keySet() :

Set<String> set = hm.keySet();
Iterator<String> it = set.iterator();
  
while(it.hasNext()){

 String strkey = it.next();
 String strval = hm.get(strkey);
 System.out.println(strkey+":::::"+strval);

}

 

entrySet()

 

  Set<Map.Entry<String,String>> set = hm.entrySet();  
  Iterator<Map.Entry<String,String>> it = set.iterator();
  while(it.hasNext()){
  
   Map.Entry<String,String> me = it.next();   
   String key = me.getKey();
   String val = me.getValue();
   System.out.println(key+"::::"+val);

}