A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© xiaoxinxin003 中级黑马   /  2015-7-12 03:16  /  586 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        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. }
复制代码




1 个回复

倒序浏览
写的不错,,加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马