黑马程序员技术交流社区

标题: Map概述及方法测试 [打印本页]

作者: itheima_llt    时间: 2015-4-18 15:58
标题: Map概述及方法测试
  1. /*
  2. Map
  3. 1 查阅API,查找Map最基本信息
  4. 在java.util包里面有:
  5. 接口 Map<K,V>
  6. K--就是key,键值
  7. V--就是Value,映射值

  8. “将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。”
  9. 这句话的意思是:Map集合存储键值对。一对一对往里存。而且要保证键的唯一性。

  10. “此接口是 Java Collections Framework 的成员”

  11. 2 Map集合共性方法
  12.         2.1 添加。
  13.                 put(K key, V value)
  14.                 putAll(Map<? extends K,? extends V> m)

  15.         2.2 删除。
  16.                 clear()
  17.                 remove(Object key)

  18.         2.3 判断。
  19.                 containsValue(Object value)
  20.                 containsKey(Object key)
  21.                 isEmpty()


  22.         2.4 获取。
  23.                 get(Object key)
  24.                 size()
  25.                 values()

  26.                 entrySet()
  27.                 keySet()

  28. 3 Map常用类
  29. 3.1 Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。
  30. 3.2 HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。
  31. 3.3 TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行自然排序。

  32. 小结:
  33. Map和Set很像。
  34. 其实Set底层就是使用了Map集合。

  35. 下面演示一下Map的共性方法
  36. */

  37. import java.util.*;

  38. //主类要加public,对外提供出去
  39. public class MapDemo
  40. {
  41.         public static void main(String[] args)
  42.         {
  43.                 putDemo();                                                                                                                        //测试Map添加方法
  44.                 //deleteDemo();                                                                                                                //测试删除方法
  45.                 //booleanDemo();                                                                                                        //测试判断方法
  46.                 //getDemo();                                                                                                                //测试获取方法
  47.         }
  48.        
  49.         public static void putDemo()                                                                                        //1 添加 put(K key, V value)
  50.         {
  51.                 Map<String,String> map = new HashMap<String,String>();                                //创建Map子类对象

  52.                 System.out.println("put方法返回值:"+map.put("num01","Jack"));                //添加一对键值,打印put的返回值
  53.                 System.out.println("put方法返回值:"+map.put("num01","WashingTon"));        //添加重复键,打印put的返回值
  54.                 map.put("num03","Green");                                                                                        //添加一对键值
  55.                 map.put("num02","Tom");                                                                                                //添加一对键值
  56.                 map.put("num04","Jane");                                                                                        //添加一对键值
  57.                
  58.                 System.out.println(map);                                                                                        //打印集合map
  59.         }
  60.        
  61.         public static void deleteDemo()                                                                                        //2 删除
  62.         {
  63.                 Map<String,String> map = new HashMap<String,String>();                                //创建Map子类对象

  64.                 map.put("num01","Jack");                                                                                        //添加一对键值
  65.                 map.put("num03","Green");                                                                                        //添加一对键值
  66.                 map.put("num02","Tom");                                                                                                //添加一对键值
  67.                 map.put("num04","Jane");                                                                                        //添加一对键值
  68.                
  69.                 System.out.println("原集合:"+map);                                                                        //打印集合map
  70.                 System.out.println("删除不存在的键,返回:"+map.remove("o2"));                //删除不存在的键
  71.                 System.out.println("删除存在的键,返回:"+map.remove("num02"));                //删除存在的键
  72.                 System.out.println("删除元素后:"+map);                                                                //打印删除元素后集合map
  73.                 map.clear();                                                                                                                //清空
  74.                 System.out.println("清空后:"+map);                                                                        //打印清空后集合map
  75.         }

  76.         public static void booleanDemo()                                                                                //3判断
  77.         {
  78.                 Map<String,String> map = new HashMap<String,String>();                                //创建Map子类对象

  79.                 map.put("num01","Jack");                                                                                        //添加一对键值
  80.                 map.put("num03","Green");                                                                                        //添加一对键值
  81.                 map.put("num02","Tom");                                                                                                //添加一对键值
  82.                 map.put("num04","Jane");                                                                                        //添加一对键值
  83.                
  84.                 System.out.println("映射中有num01:"+map.containsKey("num01"));                //判断映射中是否有指定键
  85.                 System.out.println("映射中有num05:"+map.containsKey("num05"));                //判断映射中是否有指定键
  86.                 System.out.println("映射中有值Jack:"+map.containsValue("Jack"));        //判断映射中是否有指定值
  87.                 System.out.println("映射中有值Jack:"+map.containsValue("Mike"));        //判断映射中是否有指定值
  88.                 System.out.println("映射为空:"+map.isEmpty());                                                //判断映射是否为空
  89.                 map.clear();                                                                                                                //清空
  90.                 System.out.println("映射清空了:"+map.isEmpty());                                        //判断映射是否为空
  91.         }

  92.         public static void getDemo()                                                                                        //4 获取
  93.         {
  94.                 Map<String,String> map = new HashMap<String,String>();                                //创建Map子类对象

  95.                 map.put("num01","Jack");                                                                                        //添加一对键值
  96.                 map.put("num03","Green");                                                                                        //添加一对键值
  97.                 map.put("num02","Tom");                                                                                                //添加一对键值
  98.                 map.put("num04","Jane");                                                                                        //添加一对键值

  99.                 System.out.println("原集合:"+map);                                                                        //打印集合map
  100.                 System.out.println("用键num01获取值:"+map.get("num01"));                        //获取指定键所对应的的值
  101.                 System.out.println("用键num05获取值:"+map.get("num05"));                        //获取指定键所对应的的值

  102.                 map.put(null,"Mike");                                                                                                //存null键和对应值
  103.                 map.put("num05",null);                                                                                                //存键和对应null值

  104.                 System.out.println("集合:"+map);                                                                        //打印集合map       
  105.                
  106.                 Collection<String> v = map.values();                                                                //返回map中所有值的集合
  107.                 System.out.println("Values集合"+v);                                                                        //打印所有值
  108.                 System.out.println("键值对总数:"+map.size());                                                //打印映射中键值对总数
  109.         }       
  110. }
  111. /*
  112. 总结:
  113. 通过putDemo可以知道:
  114. 添加元素,添加元素,如果出现添加时,相同的键。那么后添加的值会覆盖原有键对应值。
  115. 并put方法会返回被覆盖的值。

  116. 通过deleteDemo可以知道:
  117. remove方法会删除指定键对应的键值关系,并返回指定键对应值

  118. 通过booleanDemo可以知道:
  119. containsKey()是判断映射是否包含指定键
  120. containsValue()是判断映射是否包含指定值
  121. isEmpty()是判断映射是否为空

  122. 通过getDemo可以知道:
  123. get方法还可以用来判断该键值对是否存在

  124. */
复制代码


put方法测试.jpg (65.04 KB, 下载次数: 1)

put方法测试.jpg

基本获取方法测试.jpg (87.38 KB, 下载次数: 1)

基本获取方法测试.jpg

判断方法侧搜.jpg (82.4 KB, 下载次数: 7)

判断方法侧搜.jpg

删除方法测试.jpg (90.77 KB, 下载次数: 4)

删除方法测试.jpg

作者: itheima_llt    时间: 2015-4-18 16:00
{:3_55:}什么编辑器,真烂,把我的格式全打没 了!




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