小白教程
所有教程
关于
Search
172.69.58.17
172.69.58.17
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“Java HashMap”的源代码
本页内容
上一节:
Java_HashSet
下一节:
Java_Iterator
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:Java HashMap}}[[Category:Java 教程|37]] = Java HashMap = [[java collections|Java 集合框架]] HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。 HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。 HashMap 是无序的,即不会记录插入的顺序。 HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。 HashMap 的 key 与 value 类型可以相同也可以不同,可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value。 HashMap 中的元素实际上是对象,一些常见的基本类型可以使用它的包装类。 基本类型对应的包装类表如下: {| class="table table-striped table-hover" ! 基本类型 ! 引用类型 |- | boolean | Boolean |- | byte | Byte |- | short | Short |- | int | Integer |- | long | Long |- | float | Float |- | double | Double |- | char | Character |} HashMap 类位于 java.util 包中,使用前需要引入它,语法格式如下: <pre>import java.util.HashMap; // 引入 HashMap 类</pre> 以下实例我们创建一个 HashMap 对象 Sites, 整型(Integer)的 key 和字符串(String)类型的 value: <pre>HashMap<Integer, String> Sites = new HashMap<Integer, String>();</pre> === 添加元素 === HashMap 类提供了很多有用的方法,添加键值对(key-value)可以使用 put() 方法: <sample title="" desc="" lang="java" hererun="1"> // 引入 HashMap 类 import java.util.HashMap; public class xiaoBaiTest { public static void main(String[] args) { // 创建 HashMap 对象 Sites HashMap<Integer, String> Sites = new HashMap<Integer, String>(); // 添加键值对 Sites.put(1, "Google"); Sites.put(2, "xiaoBai"); Sites.put(3, "Taobao"); Sites.put(4, "Zhihu"); System.out.println(Sites); } } </sample> 执行以上代码,输出结果如下: <pre>{1=Google, 2=xiaoBai, 3=Taobao, 4=Zhihu}</pre> 以下实例创建一个字符串(String)类型的 key 和字符串(String)类型的 value: <sample title="" desc="" lang="java" hererun="1"> // 引入 HashMap 类 import java.util.HashMap; public class xiaoBaiTest { public static void main(String[] args) { // 创建 HashMap 对象 Sites HashMap<String, String> Sites = new HashMap<String, String>(); // 添加键值对 Sites.put("one", "Google"); Sites.put("two", "xiaoBai"); Sites.put("three", "Taobao"); Sites.put("four", "Zhihu"); System.out.println(Sites); } } </sample> 执行以上代码,输出结果如下: <pre>{four=Zhihu, one=Google, two=xiaoBai, three=Taobao}</pre> === 访问元素 === 我们可以使用 get(key) 方法来获取 key 对应的 value: <sample title="" desc="" lang="java" hererun="1"> // 引入 HashMap 类 import java.util.HashMap; public class xiaoBaiTest { public static void main(String[] args) { // 创建 HashMap 对象 Sites HashMap<Integer, String> Sites = new HashMap<Integer, String>(); // 添加键值对 Sites.put(1, "Google"); Sites.put(2, "xiaoBai"); Sites.put(3, "Taobao"); Sites.put(4, "Zhihu"); System.out.println(Sites.get(3)); } } </sample> 执行以上代码,输出结果如下: <pre>Taobao</pre> === 删除元素 === 我们可以使用 remove(key) 方法来删除 key 对应的键值对(key-value): <sample title="" desc="" lang="java" hererun="1"> // 引入 HashMap 类 import java.util.HashMap; public class xiaoBaiTest { public static void main(String[] args) { // 创建 HashMap 对象 Sites HashMap<Integer, String> Sites = new HashMap<Integer, String>(); // 添加键值对 Sites.put(1, "Google"); Sites.put(2, "xiaoBai"); Sites.put(3, "Taobao"); Sites.put(4, "Zhihu"); Sites.remove(4); System.out.println(Sites); } } </sample> 执行以上代码,输出结果如下: <pre>{1=Google, 2=xiaoBai, 3=Taobao}</pre> 删除所有键值对(key-value)可以使用 clear 方法: <sample title="" desc="" lang="java" hererun="1"> // 引入 HashMap 类 import java.util.HashMap; public class xiaoBaiTest { public static void main(String[] args) { // 创建 HashMap 对象 Sites HashMap<Integer, String> Sites = new HashMap<Integer, String>(); // 添加键值对 Sites.put(1, "Google"); Sites.put(2, "xiaoBai"); Sites.put(3, "Taobao"); Sites.put(4, "Zhihu"); Sites.clear(); System.out.println(Sites); } } </sample> 执行以上代码,输出结果如下: <pre>{}</pre> === 计算大小 === 如果要计算 HashMap 中的元素数量可以使用 size() 方法: <sample title="" desc="" lang="java" hererun="1"> // 引入 HashMap 类 import java.util.HashMap; public class xiaoBaiTest { public static void main(String[] args) { // 创建 HashMap 对象 Sites HashMap<Integer, String> Sites = new HashMap<Integer, String>(); // 添加键值对 Sites.put(1, "Google"); Sites.put(2, "xiaoBai"); Sites.put(3, "Taobao"); Sites.put(4, "Zhihu"); System.out.println(Sites.size()); } } </sample> 执行以上代码,输出结果如下: <pre>4</pre> === 迭代 HashMap === 可以使用 for-each 来迭代 HashMap 中的元素。 如果你只想获取 key,可以使用 keySet() 方法,然后可以通过 get(key) 获取对应的 value,如果你只想获取 value,可以使用 values() 方法。 <sample title="" desc="" lang="java" hererun="1"> // 引入 HashMap 类 import java.util.HashMap; public class xiaoBaiTest { public static void main(String[] args) { // 创建 HashMap 对象 Sites HashMap<Integer, String> Sites = new HashMap<Integer, String>(); // 添加键值对 Sites.put(1, "Google"); Sites.put(2, "xiaoBai"); Sites.put(3, "Taobao"); Sites.put(4, "Zhihu"); // 输出 key 和 value for (Integer i : Sites.keySet()) { System.out.println("key: " + i + " value: " + Sites.get(i)); } // 返回所有 value 值 for(String value: Sites.values()) { // 输出每一个value System.out.print(value + ", "); } } } </sample> 执行以上代码,输出结果如下: <pre> key: 1 value: Google key: 2 value: xiaoBai key: 3 value: Taobao key: 4 value: Zhihu Google, xiaoBai, Taobao, Zhihu, </pre> == Java HashMap 方法 == hashmap Java HashMap 常用方法列表如下: {| class="table table-striped table-hover" ! 方法 ! 描述 |- | [[java hashmap clear|clear()]] | 删除 hashMap 中的所有键/值对 |- | [[java hashmap clone|clone()]] | 复制一份 hashMap |- | [[java hashmap isempty|isEmpty()]] | 判断 hashMap 是否为空 |- | [[java hashmap size|size()]] | 计算 hashMap 中键/值对的数量 |- | [[java hashmap put|put()]] | 将键/值对添加到 hashMap 中 |- | [[java hashmap putall|putAll()]] | 将所有键/值对添加到 hashMap 中 |- | [[java hashmap putifabsent|putIfAbsent()]] | 如果 hashMap 中不存在指定的键,则将指定的键/值对插入到 hashMap 中。 |- | [[java hashmap remove|remove()]] | 删除 hashMap 中指定键 key 的映射关系 |- | [[java hashmap containskey|containsKey()]] | 检查 hashMap 中是否存在指定的 key 对应的映射关系。 |- | [[java hashmap containsvalue|containsValue()]] | 检查 hashMap 中是否存在指定的 value 对应的映射关系。 |- | [[java hashmap replace|replace()]] | 替换 hashMap 中是指定的 key 对应的 value。 |- | [[java hashmap replaceall|replaceAll()]] | 将 hashMap 中的所有映射关系替换成给定的函数所执行的结果。 |- | [[java hashmap get|get()]] | 获取指定 key 对应对 value |- | [[java hashmap getordefault|getOrDefault()]] | 获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值 |- | [[java hashmap foreach|forEach()]] | 对 hashMap 中的每个映射执行指定的操作。 |- | [[java hashmap entryset|entrySet()]] | 返回 hashMap 中所有映射项的集合集合视图。 |- | [[java hashmap keyset|keySet]]() | 返回 hashMap 中所有 key 组成的集合视图。 |- | [[java hashmap values|values()]] | 返回 hashMap 中存在的所有 value 值。 |- | [[java hashmap merge|merge()]] | 添加键值对到 hashMap 中 |- | [[java hashmap compute|compute()]] | 对 hashMap 中指定 key 的值进行重新计算 |- | [[java hashmap computeifabsent|computeIfAbsent()]] | 对 hashMap 中指定 key 的值进行重新计算,如果不存在这个 key,则添加到 hasMap 中 |- | [[java hashmap computeifpresent|computeIfPresent()]] | 对 hashMap 中指定 key 的值进行重新计算,前提是该 key 存在于 hashMap 中。 |} 更多 API 方法可以查看:https://www.xiaobai.wang/manual/jdk11api/java.base/java/util/HashMap.html [[java collections|Java 集合框架]]
返回至“
Java HashMap
”。
上一节:
Java_HashSet
下一节:
Java_Iterator