Java 中Map 的用法详解

yizhihongxing

Java 中 Map 的用法详解

简介

Map 是 Java 中常见的一种数据结构,它存储了一组键值对,其中每个键都唯一对应一个值,而多个键可以对应同一个值。在 Map 中,通过键快速定位对应的值,相对于遍历数组或者列表来说,速度更快。在 Java 中,Map 接口有多个实现类,其中常用的有 HashMap 和 TreeMap。

常用方法介绍

1. put 方法

public V put(K key, V value);

put 方法用于向 Map 中添加键值对,如果 Map 中已经存在该键,则会将旧值替换为新值,并返回旧值。

示例:

Map<String, Integer> map = new HashMap<>();
map.put("Tom", 18);
map.put("Jerry", 21);
map.put("Tom", 20);
System.out.println(map.get("Tom"));  // 20

2. get 方法

public V get(Object key);

get 方法用于获取 Map 中指定键对应的值,如果该键不存在,则返回 null。

示例:

Map<String, Integer> map = new HashMap<>();
map.put("Tom", 18);
System.out.println(map.get("Tom"));  // 18
System.out.println(map.get("Jerry"));  // null

3. remove 方法

public V remove(Object key);

remove 方法用于从 Map 中删除指定键对应的键值对,并返回该键对应的值,如果该键不存在,则返回 null。

示例:

Map<String, Integer> map = new HashMap<>();
map.put("Tom", 18);
System.out.println(map.remove("Jerry"));  // null
System.out.println(map.remove("Tom"));  // 18

4. keySet 方法

public Set<K> keySet();

keySet 方法用于获取 Map 中所有键的集合。

示例:

Map<String, Integer> map = new HashMap<>();
map.put("Tom", 18);
map.put("Jerry", 21);
Set<String> keys = map.keySet();
for (String key : keys) {
    System.out.println(key + ": " + map.get(key));
}

输出:

Tom: 18
Jerry: 21

5. entrySet 方法

public Set<Map.Entry<K, V>> entrySet();

entrySet 方法用于获取 Map 中所有键值对的集合。

示例:

Map<String, Integer> map = new HashMap<>();
map.put("Tom", 18);
map.put("Jerry", 21);
Set<Map.Entry<String, Integer>> entries = map.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

输出:

Tom: 18
Jerry: 21

6. size 方法

public int size();

size 方法用于获取 Map 中键值对的数量。

示例:

Map<String, Integer> map = new HashMap<>();
map.put("Tom", 18);
map.put("Jerry", 21);
System.out.println(map.size());  // 2

示例

示例一:计算字符串中每个字符出现的次数

String str = "Hello, world!";
Map<Character, Integer> map = new HashMap<>();
for (char c : str.toCharArray()) {
    if (map.containsKey(c)) {
        map.put(c, map.get(c) + 1);
    } else {
        map.put(c, 1);
    }
}
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + ": " + entry.getValue());
}

输出:

H: 1
e: 1
l: 3
o: 2
,: 1
 : 1
w: 1
r: 1
d: 1
!: 1

示例二:多重映射

Map<String, List<Integer>> map = new HashMap<>();
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
List<Integer> list2 = new ArrayList<>();
list2.add(3);
list2.add(4);
map.put("key1", list1);
map.put("key2", list2);
System.out.println(map.get("key1"));  // [1, 2]
System.out.println(map.get("key2"));  // [3, 4]

总结

本文介绍了 Java 中 Map 接口的常用方法以及两个示例,希望能为读者在实际开发中使用 Map 提供一些帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 中Map 的用法详解 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Springboot整合多数据源配置流程详细讲解

    下面我将为你详细讲解Springboot整合多数据源配置流程的完整攻略。 1. 引入多数据源依赖 在 pom.xml 文件中引入多数据源依赖。这里我们以 Druid 数据源为例,示例代码如下: <dependency> <groupId>com.alibaba</groupId> <artifactId>dru…

    Java 2023年5月20日
    00
  • 使用struts2+Ajax+jquery验证用户名是否已被注册

    下面我将详细讲解如何使用struts2+Ajax+jquery验证用户名是否已被注册的完整攻略: 1. 准备工作 首先需要准备以下工具和环境: struts2-web框架:用于接收和处理请求,在返回结果时可以返回json字符串。 jquery:用于发送Ajax请求。 验证用户名是否已被注册的代码功能。 2. 编写struts.xml配置文件 首先需要在str…

    Java 2023年5月20日
    00
  • Maven属性与版本管理详细步骤分解

    当使用Maven构建项目时,经常需要定义各种属性和版本信息。这些信息存放在pom.xml文件中,方便项目构建和版本管理。下面是关于Maven属性与版本管理的详细步骤分解: 定义属性 Maven中可以使用属性(properties)来管理各种信息,如版本号、项目名、构建路径等。定义属性后,可以在pom.xml文件的各种标签中引用这些属性。定义属性的方法如下: …

    Java 2023年5月20日
    00
  • jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码

    要实现jQuery EasyUI datagrid在翻页以后仍能记录被选中行所对应数据的功能,我们可以通过以下步骤实现: 步骤一:记录选中行的数据 使用EasyUI datagrid中提供的onSelect和onUnselect事件,分别在用户选中和取消选中某一行的时候,记录该行所对应的数据,并将数据存储在一个数组中。具体代码如下: var selected…

    Java 2023年6月15日
    00
  • Java MD5消息摘要算法原理及实现代码

    当然,以下将按照Markdown的规范进行回答。 Java MD5消息摘要算法原理及实现代码 算法原理 MD5(Message-Digest algorithm 5)消息摘要算法是一种广泛使用的密码哈希函数,用于在计算机系统中对信息进行加密。MD5算法可以将任意长度的消息压缩成一个128位的哈希值,通常用于验证消息的完整性和一致性。 MD5算法的实现原理可以…

    Java 2023年5月19日
    00
  • java web实现简单登录注册功能全过程(eclipse,mysql)

    接下来我详细讲解如何使用Java Web实现简单的登录注册功能全过程,以下是步骤: 步骤一:配置开发环境 在开始项目之前,我们需要搭建好相应的开发环境,主要包括Java SE、Eclipse IDE、MySQL等工具和环境的安装和配置工作。 步骤二:创建Maven Web项目 在Eclipse IDE中创建一个Maven Web项目,建议使用Spring框架…

    Java 2023年6月16日
    00
  • AngularJS ng-blur 指令详解及简单实例

    AngularJS ng-blur 指令详解及简单实例 什么是ng-blur指令? ng-blur是AngularJS中的一个指令,它用于在指定元素失去焦点时执行一个表达式或函数。具体来说,当元素上绑定了ng-blur指令时,当该元素失去焦点时,会自动执行与该指令绑定的表达式或函数。 ng-blur指令的使用方法 我们可以将ng-blur指令添加到任何HTM…

    Java 2023年6月15日
    00
  • Spring Boot 集成JWT实现前后端认证的示例代码

    下面是详细讲解“Spring Boot集成JWT实现前后端认证的示例代码”的攻略。 什么是JWT JWT全称为JSON Web Token。它是一种轻量级的身份验证机制,可以用于前后端之间的认证和授权。使用JWT进行认证,可以避免服务端为每个客户端的请求保存会话状态,从而提高服务的可伸缩性。 JWT由三部分组成:头部(Header)、载荷(Payload)和…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部