java-API之集合10——HashMap实现类
特点
- 基于哈希表的 Map 接口的实现。
- 允许使用 null 值和 null 键。
- 此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
- 默认初始容量 是16 和默认加载因子 0.75
HashMap 的实例有两个参数影响其性能:初始容量 和加载因子。容量 是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行 rehash 操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数。
常用方法及测试
案例
1 public class Test_MapTest { 2 3 public static void main(String[] args) { 4 5 // 1、接收用户输入的字符串 6 String input = new Scanner(System.in).nextLine(); 7 // 存储字符及字符出现的次数 8 9 HashMap<Character,Integer> map = new HashMap<>(); 10 // 2、获取字符串中的每个字符 11 for (int i = 0; i < input.length(); i++) { 12 // 根据下标获取字符 13 char key = input.charAt(i); 14 15 // 3、统计字符出现的次数 16 // 方法1 17 // if(map.containsKey(key)) { 18 // int count = map.get(key); 19 // map.put(key,++count); 20 // }else { 21 // map.put(key,1); 22 // } 23 24 // 方法2 25 Integer count = map.get(key); //获取当前值出现的次数 26 if(count == null) { // 如果等于null,则证明此字符没有出现过 27 map.put(key, 1); 28 }else { // 如果不等于null,则证明此字段出现过,加1 29 map.put(key, ++count); 30 } 31 } 32 System.out.println(map); 33 } 34 }