admin 管理员组文章数量: 887021
2023年12月19日发(作者:sort code是什么)
hashmap基本用法
HashMap是Java中常用的集合类之一,它可以存储键值对,并且具有高效的插入、删除、查找操作。在本文中,我们将会介绍HashMap的基本用法,包括如何创建HashMap、添加和删除元素、如何遍历HashMap以及对HashMap的一些特殊操作。
一、创建HashMap
使用HashMap时,首先需要创建一个HashMap对象,并且需要指定两个泛型参数:键的类型和值的类型。创建一个键为String类型,值为Integer类型的HashMap对象,可以使用如下语句:
```java
HashMap
```
创建HashMap对象时,还可以指定初始容量和负载因子两个参数。初始容量是指HashMap可以存储的键值对数量的初始值。负载因子是指HashMap在达到容量上限时,增加新的键值对时如何调整容量的算法。通常情况下,我们采用默认的初始容量(16)和负载因子(0.75),即不需要额外指定:
```java
HashMap
```
如果需要指定初始容量和负载因子,可以使用如下语句:
```java
HashMap
```
这样就创建了一个初始容量为20,负载因子为0.8的HashMap对象。
二、添加和删除元素
向HashMap中添加元素时,需要使用put(key, value)方法,其中key表示键,value表示值。向上述创建的HashMap对象中添加两个键值对,可以使用如下语句:
```java
("one", 1);
("two", 2);
```
这样,就向HashMap对象中添加了两个键值对。如果需要修改某个键对应的值,可以直接使用put方法,新的值会覆盖原有值。修改键为"one"的值为3,可以使用如下语句:
```java
("one", 3);
```
删除HashMap中的元素可以使用remove(key)方法,其中key表示要删除的键。删除键为"two"对应的键值对可以使用如下语句:
```java
("two");
```
这样,键为"two"的键值对就被从HashMap中删除了。
三、遍历HashMap
遍历HashMap可以使用不同的方式,例如使用迭代器进行遍历或者使用Lambda表达式进行遍历。下面介绍两种常用的遍历方式。
1.使用迭代器进行遍历
迭代器是Java中一种用于遍历Collection类型的工具,HashMap是Collection类型的子类,因此也可以使用迭代器进行遍历。用法如下:
```java
Iterator<
while (t()) {
String key = ();
Integer value = ue();
n(key + ":" + value);
}
```
这里的entrySet()方法返回一个包含所有键值对的Set集合,然后使用迭代器遍历Set集合。每次迭代时,取出一个键值对,然后分别获取键和值。
2.使用Lambda表达式进行遍历
Java 8中引入了Lambda表达式,可以使用Lambda表达式遍历HashMap。用法如下:
```java
h((key, value) -> {
n(key + ":" + value);
});
```
这里的forEach方法接收一个函数式接口的实例,该函数式接口定义了一个接收键值对参数的方法。在Lambda表达式中,使用箭头符号将形参和方法体分开,箭头符号左侧为形参列表,右侧为方法体。使用Lambda表达式可以更加简洁地遍历HashMap。
四、HashMap的特殊操作
1.获取HashMap中的键集合或值集合
可以使用keySet()方法获取HashMap中的所有键的集合,或者使用values()方法获取HashMap中的所有值的集合。获取上述创建的HashMap对象中的所有键,可以使用如下语句:
```java
Set
```
获取所有值需要使用values()方法:
```java
Collection
```
2.判断HashMap是否包含某个键或值
```java
```
```java
```
3.获取HashMap中键值对的总数
可以使用size()方法获取HashMap中键值对的总数。获取上述创建的HashMap对象中的键值对总数,可以使用如下语句:
```java
int size = ();
```
本文介绍了HashMap的基本用法,包括如何创建HashMap、添加和删除元素、如何遍历HashMap以及对HashMap的一些特殊操作。HashMap是Java中常用的集合类之一,掌握HashMap的基本用法是Java开发中的基本功之一。
版权声明:本文标题:hashmap基本用法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1702967346h437778.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论