- /*
- Map
- 1 查阅API,查找Map最基本信息
- 在java.util包里面有:
- 接口 Map<K,V>
- K--就是key,键值
- V--就是Value,映射值
- “将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。”
- 这句话的意思是:Map集合存储键值对。一对一对往里存。而且要保证键的唯一性。
- “此接口是 Java Collections Framework 的成员”
- 2 Map集合共性方法
- 2.1 添加。
- put(K key, V value)
- putAll(Map<? extends K,? extends V> m)
- 2.2 删除。
- clear()
- remove(Object key)
- 2.3 判断。
- containsValue(Object value)
- containsKey(Object key)
- isEmpty()
- 2.4 获取。
- get(Object key)
- size()
- values()
- entrySet()
- keySet()
- 3 Map常用类
- 3.1 Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。
- 3.2 HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。
- 3.3 TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行自然排序。
- 小结:
- Map和Set很像。
- 其实Set底层就是使用了Map集合。
- 下面演示一下Map的共性方法
- */
- import java.util.*;
- //主类要加public,对外提供出去
- public class MapDemo
- {
- public static void main(String[] args)
- {
- putDemo(); //测试Map添加方法
- //deleteDemo(); //测试删除方法
- //booleanDemo(); //测试判断方法
- //getDemo(); //测试获取方法
- }
-
- public static void putDemo() //1 添加 put(K key, V value)
- {
- Map<String,String> map = new HashMap<String,String>(); //创建Map子类对象
- System.out.println("put方法返回值:"+map.put("num01","Jack")); //添加一对键值,打印put的返回值
- System.out.println("put方法返回值:"+map.put("num01","WashingTon")); //添加重复键,打印put的返回值
- map.put("num03","Green"); //添加一对键值
- map.put("num02","Tom"); //添加一对键值
- map.put("num04","Jane"); //添加一对键值
-
- System.out.println(map); //打印集合map
- }
-
- public static void deleteDemo() //2 删除
- {
- Map<String,String> map = new HashMap<String,String>(); //创建Map子类对象
- map.put("num01","Jack"); //添加一对键值
- map.put("num03","Green"); //添加一对键值
- map.put("num02","Tom"); //添加一对键值
- map.put("num04","Jane"); //添加一对键值
-
- System.out.println("原集合:"+map); //打印集合map
- System.out.println("删除不存在的键,返回:"+map.remove("o2")); //删除不存在的键
- System.out.println("删除存在的键,返回:"+map.remove("num02")); //删除存在的键
- System.out.println("删除元素后:"+map); //打印删除元素后集合map
- map.clear(); //清空
- System.out.println("清空后:"+map); //打印清空后集合map
- }
- public static void booleanDemo() //3判断
- {
- Map<String,String> map = new HashMap<String,String>(); //创建Map子类对象
- map.put("num01","Jack"); //添加一对键值
- map.put("num03","Green"); //添加一对键值
- map.put("num02","Tom"); //添加一对键值
- map.put("num04","Jane"); //添加一对键值
-
- System.out.println("映射中有num01:"+map.containsKey("num01")); //判断映射中是否有指定键
- System.out.println("映射中有num05:"+map.containsKey("num05")); //判断映射中是否有指定键
- System.out.println("映射中有值Jack:"+map.containsValue("Jack")); //判断映射中是否有指定值
- System.out.println("映射中有值Jack:"+map.containsValue("Mike")); //判断映射中是否有指定值
- System.out.println("映射为空:"+map.isEmpty()); //判断映射是否为空
- map.clear(); //清空
- System.out.println("映射清空了:"+map.isEmpty()); //判断映射是否为空
- }
- public static void getDemo() //4 获取
- {
- Map<String,String> map = new HashMap<String,String>(); //创建Map子类对象
- map.put("num01","Jack"); //添加一对键值
- map.put("num03","Green"); //添加一对键值
- map.put("num02","Tom"); //添加一对键值
- map.put("num04","Jane"); //添加一对键值
- System.out.println("原集合:"+map); //打印集合map
- System.out.println("用键num01获取值:"+map.get("num01")); //获取指定键所对应的的值
- System.out.println("用键num05获取值:"+map.get("num05")); //获取指定键所对应的的值
- map.put(null,"Mike"); //存null键和对应值
- map.put("num05",null); //存键和对应null值
- System.out.println("集合:"+map); //打印集合map
-
- Collection<String> v = map.values(); //返回map中所有值的集合
- System.out.println("Values集合"+v); //打印所有值
- System.out.println("键值对总数:"+map.size()); //打印映射中键值对总数
- }
- }
- /*
- 总结:
- 通过putDemo可以知道:
- 添加元素,添加元素,如果出现添加时,相同的键。那么后添加的值会覆盖原有键对应值。
- 并put方法会返回被覆盖的值。
- 通过deleteDemo可以知道:
- remove方法会删除指定键对应的键值关系,并返回指定键对应值
- 通过booleanDemo可以知道:
- containsKey()是判断映射是否包含指定键
- containsValue()是判断映射是否包含指定值
- isEmpty()是判断映射是否为空
- 通过getDemo可以知道:
- get方法还可以用来判断该键值对是否存在
- */
复制代码
|
组图打开中,请稍候......
|