首页 > 编程语言 >集合框架(一) Java中Map的常见方法的使用及循环的五种方式

集合框架(一) Java中Map的常见方法的使用及循环的五种方式

时间:2023-11-28 11:34:57浏览次数:26  
标签:Map Java HashMap map value 五种 键值 put

Map是Java中的一种集合,它是一种键值对的映射表,可以根据键快速获取对应的值。
@[toc]
## 1. 常见使用方式

以下是Java中Map的常见方法使用示例及运行结果:

### 1.1 存储键值对

使用put()方法向Map中添加键值对:

```java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);//新增键值对,左边键右边值
map.put("banana", 20);
System.out.println(map);
```

输出结果:

```
{banana=20, apple=10}
```

### 1.2. 获取值

使用get()方法根据键获取对应的值:

```java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
int value = map.get("apple");//获取指定键的值
System.out.println(value);
```

输出结果:

```
10
```

### 1.3. 判断是否包含某个键或值

使用containsKey()和containsValue()方法:

```java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
boolean hasKey = map.containsKey("apple");//判断此map集合里是否存在指定键
boolean hasValue = map.containsValue(20);//判断此map集合里是否存在指定值
System.out.println(hasKey);
System.out.println(hasValue);
```

输出结果:

```
true
true
```

### 1.4. 获取所有键或值

使用keySet()和values()方法获取所有键或值:

```java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
Set<String> keys = map.keySet();//获取所有的键
Collection<Integer> values = map.values();//获取所有的值
System.out.println(keys);
System.out.println(values);
```

输出结果:

```
[banana, apple]
[20, 10]
```

### 1.5. 删除键值对

使用remove()方法删除键值对:

```java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.put("banana", 20);
map.remove("banana");//根据指定的键删除该键值对
System.out.println(map);
```

输出结果:

```
{apple=10}
```


## 2. 循环方式

Map提供了很多不同的循环方式,可根据需求选择不同的方式。以下列举了五种常见的循环方式:

### 2.1使用for-each循环遍历:
使用for-each循环遍历Map中的所有键值对,代码示例:

```java
Map<String, Integer> map = new HashMap<>();
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
// Do something with key and value
}
```

### 2.2使用Iterator遍历:
使用Iterator遍历Map中的所有键值对,代码示例:

```java
Map<String, Integer> map = new HashMap<>();
Iterator<Map.Entry<String, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Integer> entry = it.next();
String key = entry.getKey();
Integer value = entry.getValue();
// Do something with key and value
}
```

### 2.3遍历所有键:
使用keySet()方法获取所有键,然后遍历所有键,代码示例:

```java
Map<String, Integer> map = new HashMap<>();
for (String key : map.keySet()) {
Integer value = map.get(key);
// Do something with key and value
}
```

### 2.4遍历所有值:
使用values()方法获取所有值,然后遍历所有值,代码示例:

```java
Map<String, Integer> map = new HashMap<>();
for (Integer value : map.values()) {
// Do something with value
}
```

### 2.5 使用Lambda表达式遍历:
使用Lambda表达式遍历Map中的所有键值对,代码示例:

```java
Map<String, Integer> map = new HashMap<>();
map.forEach((key, value) -> {
// Do something with key and value
});
```
总结的有什么不好的地方,可以指出,大家共同进步。

标签:Map,Java,HashMap,map,value,五种,键值,put
From: https://www.cnblogs.com/xioaliang/p/17861502.html

相关文章

  • @SpringbootTest报错 javax.websocket.server.ServerContainer not availableJ情况解
    在使用springboot单元测试出现:11:11:10.799[main]ERRORo.s.b.SpringApplication-[reportFailure,870]-Applicationrunfailedorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'serverEndpointExporter'definedincla......
  • Java程序员必备技能:Collections工具类深度解析!
    在之前的文章中,我们学习了单列集合的两大接口及其常用的实现类;在这些接口或实现类中,为我们提供了不少的实用的方法。本篇文章我们来介绍一种java开发者为我们提供了一个工具类,让我们更好的来使用集合Collections工具类Collections是一个操作Set,List,Map等的集合工具类它提......
  • 面试官:为什么阿里不推荐使用 keySet() 遍历 HashMap?太叼钻了吧。。
    来源:https://juejin.cn/post/7295353579002396726Part1引言HashMap相信所有学Java的都一定不会感到陌生,作为一个非常重用且非常实用的Java提供的容器,它在我们的代码里面随处可见。因此遍历操作也是我们经常会使用到的。HashMap的遍历方式现如今有非常多种:使用迭代器(Iterator)......
  • java 为解决导入部门名称是中文,部门名称转换成部门ID
    一、业务实现:(Server层)/***为解决导入部门名称是中文,部门名称转换成部门ID*key:部门名称*value:部门ID**/Map<String,Integer>getOrgNameToIdMapping();二、业务层(SercerImpl)/***为解决导入部门名称是中文,部门名称转换成部......
  • Java集合ArrayList,LinkedList,Vector的相同点与区别是什么?
    ✨前言✨本篇作为,java集合中ArrayList,LinkedList,Vector常用集合的分析概括,已便大家认识这三种集合的区别,和特点......
  • Android app兼容低版本Java环境
    原文地址:Androidapp兼容低版本Java环境-Stars-One的杂货小窝起因是修复一个Bug遇到的问题,找到了一个可以让app兼容低版本java的方法众所周知,Android版本更新后,其内置的JRE环境也随之更新了假如我们在app中用到了JDK8的特有的属性,而用户的手机设备系统还是比较低,而没......
  • Java 第三方链接请求工具
    importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;importorg.apache.http.Consts;importorg.apache.http.HttpEntity;importorg.apache.http.HttpResponse;importorg.apache.http.NameValuePair;importorg.apache.http.client.entity.Url......
  • Java8使用并行流(ParallelStream)注意事项
    本文转载自简书:https://www.jianshu.com/p/51c1d4f1bf84著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 Java8并行流ParallelStream和Stream的区别就是支持并行执行,提高程序运行效率。但是如果使用不当可能会发生线程安全的问题。Demo如下:1publics......
  • 用java写一个抽奖程序
    需求分析1)实现三个基本功能:登录、注册、抽奖。2)登录:用户输入账号密码进行登录,输入账号后会匹配已注册的用户,若输入用户不存在则退出,密码有三次输入机会,登录成功后主界面会显示已登录用户的账号信息。3)注册:用户首先输入账号名称,系统查询此名称是否存在,如存在则请求用户换一个名称,......
  • Java 实现统一社会信用代码有效性校验
    一、调用工具类:importcom.yf.utils.StringUtils;importjava.util.HashMap;importjava.util.Map;/***统一社会信用代码有效性校验**@authorFengQing*@programruoyi-vue-file*@description*@date2023/09/11*/publicclassTyshxydmVerificationUtil......