2018/11/14 9:28 就业day04 Java.util.Map<k,v>集合(李) Map双列集合的特点: 1. 每个元素有两个值,(键和值) 2. 其中键不能重复, 值可以重复 3. 可以通过键找到对应的值 地图: 地址 地名(可重复) Map:(Map接口) key value key不可重复 value可以重复的 通过key可以找到对应值 Collection单列集合 每个元素只有一个值 Map实现类介绍 1.HashMap 底层是哈希表的实现(HashMap中的键其实就是HashSet) LinkedHashMap:HashMap子类 就是一个有序的HashMap 2.Hashtable Properties 可以方便和IO流结合使用 比较: Hashtable是同步的, Hashtable不允许null键和null值 HashMap是不同步的, HashMap允许null键和null值, 但是null值只能出现一次 1.3 Map常用方法(功能): V put(K k, V v):添加元素, 如果键已经存在则用新值替换旧值, 并返回此时的“旧值” Put方法添加元素, 如果键不存在, 直接添加,put方法返回null,如果键已经存在, 如果键不能重复, 会将新的值替换旧的值, 再将此时的“旧的值”返回。 V remove(K v): 把指定的键 所对应的键值对应元素, 在Map集合中删除, 返回被删除元素的值 V get(Object key) : 获取指定键的值(通过键获取值) Boolean containsKey(Objectkey): 判断指定的键是否存在 Boolean containsValue(Objectkey): 判断指定的值是否存在 需求: 1. 创建HashMap<K V>, 往集合中添加多组元素, 其中键是省份名称,值是省会城市名称 2. 删除某个省份 3. 获取… 遍历功能: Set<K> keyset()获取包含所有键的Set集合 其实HashMap中的键就相当于一个HashSet (键找值的方式遍历Map集合) 1. Set<K>set = map.keySet() 2. For(Kkey:set){ V v =map.get(key); } 遍历map集合的方式二: 获取所有包含键值对元素(Entry)的Set集合 Set<Map.Entry<K,v>> entrySet() 1. Set<Map.Entry<K,v>> entrys = map.entrySet() 2. For(Entry e: entrys){ e.getkey() e.getValue() } HashMap: 存储: 将键值对数据, 封装到Entry对象中 整体再放入一个Set集合中 获取: 获取Set集合 获取Entry对象 获取键值对数据 1.7用HashMap存储自定义类型键值(李) 由于HashMap中的键就相当于一个HashSet, 所以HashMap中的键是自定义类型的时候, 则需要重写HashCode()和equals()方法 其实使用HashSet存储元素的时候, 底层是把元素存储到HashMap的键中。 需求: 计算一个字符串中每个字符出现次数 (helloworld) /* 用双列集合存储数据: 字符: 出现次数 Character Integer 遍历字符串获取字符, 统计字符: 1. 判断字符是否已经被统计过 已经统计过: 把之前出现的次数+1 没有统计过: 设置次字符出现的次数为1 */ 2.1 JDK 9 的新特性:添加元素到集合的of方法【参考视频】 在List,Map,Set接口中定义了一些重载的静态方法of可以实现多个元素添加到集合中。 注意: 1. 只能使用接口类型调用这些静态方法,实现类去调用则不可以 2. 使用of方法将元素添加到集合中个,元素不能再改变 3. Map/Set接口中不允许重复的键/元素,则会??? 2018.11.14 Debug调试程序: 使用方式: 在行号的右边, 鼠标左键单击, 加断点 右键, 选择Debug执行程序 程序就会停留在添加的第一个断点处 执行程序: f8: 逐行执行程序 f7: 进入到方法中 shift+f8:跳出方法 f9: 跳到下一个断点, 如果没有下一个断点, 那么就结束程序 Ctrl+f2: 退出debug模式, 停止程序 Console:切换到控制台 Debug调试程序:(李) 1. 点断点(希望查看代码执行步骤的开始) 2. 以debug模式启动 3. 按F8查看执行流程(如果想看调用的方法,则按下F7进入方法) 如何排序: 直接把字符串是做不到的, 如果每张牌都有一个跟大小相关的序号, 发牌的时候发序号, 4 2 1 3: 1 2 3 4 5 7 6 8: 5 6 7 8 最后根据序号取出牌盒中对应的牌
|