黑马程序员技术交流社区

标题: Map集合 [打印本页]

作者: xiaoxinxin003    时间: 2015-7-12 03:16
标题: Map集合
        Map集合:存放的是键值对,一对一对存放,而且保证键的唯一性,包括
        三个子类:HashTable  HashMap  TreeMap
        添加:put(K key,V value) putAll()  删除:clear() remove(Object Key)
        判断:containsValue(Object value) containsKey(Object key) isEmpty()
        获取:get(Object key) size() value() entrySet() keySet()
Map  其实Set集合底层使用的就是Map集合
        |——HashTable底层是哈希值数据结构,不可以有null键和值,是线程同步的。
        |——HashMap底层是哈希值数据结构,允许使用null键和值,是线程不同步的。
        |——TreeMap底层是二叉树,可以用于给Map集合中的键进行 排序,线程不同步。
HashMap和HashTable的区别:null和同步不同步。
代码演示Map共性方法:
  1. import java.util.*;
  2. class MapDemo
  3. {
  4.         public static void main(String [] args){
  5.                 Map<String,String> map = new HashMap<String,String>();
  6.                 map.put("01","zhangsan01");//添加
  7.                 map.put("02","zhangsan02");
  8.                 map.put("03","zhangsan03");
  9.                 System.out.println("containsKey: "+map.containsKey("02"));
  10.                 //System.out.println("remove: "+map.remove("02"));
  11.                 //System.out.println("get: "+map.get("03"));
  12.                 map.put(null,"haha");
  13.                 System.out.println("get: "+map.get(null));
  14.                 //获取
  15.                 Collection <String>coll = map.value();
  16.                 System.out.println(coll);
  17.                 System.out.println(map);
  18.         }
  19. }
复制代码

        Map集合所有的元素获取:entrySet和keySet
keySet:将map中所有的键存放到Set集合,因为Set集合具备迭代器。然后可以通过迭代获取所有键,
再通过get方法获取所有的值,
代码演示keySet:
  1. import java.util.*;
  2. class MapDemo
  3. {
  4.         public static void main(String [] args){
  5.                 Map<String,String> map = new HashMap<String,String>();
  6.                 map.put("01","zhangsan01");//添加
  7.                 map.put("02","zhangsan02");
  8.                 map.put("03","zhangsan03");
  9.                 //现获取map集合的所有键的Set集合,keySet();
  10.                 Set<String>keySet = map.keySet();
  11.                 //获取其迭代器
  12.                 Iterator<String> it = keySet.iterator();
  13.                 while(it.hasNext()){
  14.                         String key = it.next();//取得所有的键
  15.                         String value = map.get(key);//取得值
  16.                         System.out.println("key: "+key+"value: "+value);
  17.                 }
  18. }
复制代码



        第二种获取方法:entrySet,将map集合中的映射关系存放到Set集合,
                而这个映射关系的数据类型就是:Map.Entry
                Map.Entry也是一个接口,是Map接口中的一个内部接口。
代码演示:
  1. import java.util.*;
  2. class MapDemo
  3. {
  4.         public static void main(String [] args){
  5.                 Map<String,String> map = new HashMap<String,String>();
  6.                 map.put("01","zhangsan01");//添加
  7.                 map.put("02","zhangsan02");
  8.                 map.put("03","zhangsan03");
  9.                 //将map中的映射关系取出,出入到Set集合。
  10.                 Set<Map.Entry<String,String>>entrySet = map.entrySet();
  11.                 Iterator<Map.Entry<String,String>> it = entrySet.iterator();
  12.                 while(it.hasNext()){
  13.                         Map.Entry<String,String> me = it.next();
  14.                         String key = me.getKey();
  15.                         String value = me.getValue();
  16.                         System.out.println("key: "+key+"value: "+value);
  17.                 }
  18. }
复制代码





作者: 0618张军    时间: 2015-7-12 07:10
写的不错,,加油




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2