Java Map集合使用方法全面梳理

Java Map集合使用方法全面梳理

什么是Java Map集合

在Java编程中,Map是一个非常有用的接口,它可以帮助我们管理具有键值对的数据集合。具体来说,一个Map对象是由一组键值对组成,其中每个键(key)都必须是唯一且不变的,而每个值(value)可以是任意对象(包括null)。Map中的键值对是没有固定的顺序的。

Java提供了多种不同的Map实现,例如HashMap、TreeMap、LinkedHashMap等。每种实现都有自己的优缺点,可以按照具体需求进行选择。

Map集合的基本操作

创建Map对象

我们可以通过如下代码创建一个新的HashMap对象:

Map<String, Integer> map = new HashMap<>();

这里我们使用了泛型语法,确保Map只能存储字符串键和整数值。当然,如果你需要存储其他类型的数据,只需要将泛型参数进行相应的更改即可。

添加元素

向Map中添加元素很简单,我们只需要使用put方法即可:

map.put("apple", 5);
map.put("banana", 3);
map.put("orange", 7);

这里我们向Map中添加了三个键值对,分别是"apple":5、"banana":3和"orange":7。

访问元素

我们可以通过键来访问Map中的元素,使用get方法即可:

int count = map.get("apple");
System.out.println(count); // 输出5

删除元素

我们可以使用remove方法来删除Map中的元素,只需要指定要删除的键即可:

map.remove("banana");

遍历元素

遍历Map中的元素有多种方式,下面是一些示例代码:

使用for-each循环遍历

for (String key: map.keySet()) {
    int value = map.get(key);
    System.out.println(key + " -> " + value);
}

使用Iterator遍历

Iterator<Map.Entry<String, Integer>> iter = map.entrySet().iterator();
while (iter.hasNext()) {
    Map.Entry<String, Integer> entry = iter.next();
    System.out.println(entry.getKey() + " -> " + entry.getValue());
}

Map集合的常用方法

除了上述基本操作外,Map集合还有很多其他常用的方法,下面是其中的一些:

size

获取Map中键值对的数量:

int size = map.size();

containsKey

判断是否包含指定的键:

boolean contains = map.containsKey("apple");

containsValue

判断是否包含指定的值:

boolean contains = map.containsValue(7);

putIfAbsent

在键不存在的情况下添加元素:

map.putIfAbsent("peach", 9);

如果"peach"键不存在,则添加一个键值对"peach":9;否则不进行任何操作。

getOrDefault

获取指定键对应的值,如果键不存在则返回默认值:

int count = map.getOrDefault("pear", 0);

如果"pear"键存在,则返回其对应的值;否则返回0。

示例说明

下面是一个示例代码,其中演示了如何使用HashMap存储学生的成绩(使用学生的姓名作为键,成绩作为值):

Map<String, Integer> scores = new HashMap<>();
scores.put("Alice", 85);
scores.put("Bob", 94);
scores.put("Charlie", 72);
scores.put("David", 90);

// 遍历Map,并输出各个学生的成绩
for (String name: scores.keySet()) {
    int score = scores.get(name);
    System.out.println(name + " -> " + score);
}

Output:

Alice -> 85
Bob -> 94
Charlie -> 72
David -> 90

另一个示例是如何使用TreeMap对字符串进行排序:

Map<String, Integer> wordCounts = new TreeMap<>();

// 统计字符串在文本中出现的次数
String text = "This is a sample text with several repeated words.";
String[] words = text.split("\\s+");
for (String word: words) {
    int count = wordCounts.getOrDefault(word, 0);
    wordCounts.put(word, count + 1);
}

// 遍历Map,并按键(字符串)进行排序
for (String word: wordCounts.keySet()) {
    int count = wordCounts.get(word);
    System.out.println(word + " -> " + count);
}

Output:

This -> 1
a -> 1
is -> 1
repeated -> 1
sample -> 1
several -> 1
text -> 1
with -> 1
words. -> 1

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java Map集合使用方法全面梳理 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • 浅谈springBean的作用域

    什么是Spring Bean作用域 Spring中的Bean作用域就是指一个Bean在Spring容器中的生命周期,Bean的作用域有很多种,常见的有单例(Singleton)、原型(Prototype)、会话(Session)和请求(Request)等。 Spring Bean作用域分类 Spring Bean作用域主要分为以下几类: Singleton(…

    Java 2023年5月19日
    00
  • Lombok和MapStruct整合详情

    Lombok和MapStruct是两个非常实用的Java开发工具,其中Lombok可以减少编写代码的麻烦,而MapStruct则可以生成JavaBean之间的映射关系,因此它们在项目中的应用十分广泛。下面将详细讲解Lombok和MapStruct整合的攻略。 Lombok和MapStruct整合:步骤说明 首先在项目的pom.xml文件中导入Lombok和M…

    Java 2023年5月26日
    00
  • 求解旋转数组的最小数字

    对于旋转数组的最小数字问题,有以下几个步骤: 理解问题:旋转数组是将一个有序数组的最开始若干个元素搬到数组的末尾,形成一个新的数组的过程。问题即为在这个旋转后的数组中寻找最小值。 思考解法:由于数组是旋转后的有序数组,我们需要利用这个性质来解决这个问题。可以采用以下三种解法: 二分查找:将数组分为两部分,其中一部分一定是有序的。根据二分查找的思想,在有序部分…

    Java 2023年5月19日
    00
  • springboot oauth2实现单点登录实例

    下面我将详细讲解如何使用Spring Boot OAuth2实现单点登录的完整攻略。主要分为以下几个步骤: 第一步:创建OAuth2授权服务器 在Spring Boot中实现OAuth2授权服务器需要通过添加spring-boot-starter-oauth2-server依赖来完成。具体实现步骤如下: 添加maven依赖 <dependency&gt…

    Java 2023年5月20日
    00
  • Java有趣好玩的图形界面开发八个案例实现

    感谢您对Java图形界面开发的关注,关于Java有趣好玩的图形界面开发八个案例实现的攻略,下面给你一个详细的介绍。 八个案例 Java图形界面开发八个案例是由Java研究社推出的一门Java课程。该课程主要通过八个实例,让大家初步掌握Java图形界面的开发。这八个案例包括:电子时钟、文字跑马灯、图片浏览器、字母连线游戏、翻牌游戏、俄罗斯方块、英雄连连看、飞机…

    Java 2023年5月18日
    00
  • java获取Date时间的各种方式汇总

    Java获取Date时间的各种方式汇总 Date类作为Java中常用的日期时间操作类,提供了多种获取时间的方式。本文将为大家详细介绍Java中常见的Date时间获取方式,希望对大家有所帮助。 currentTimeMillis() currentTimeMillis()方法返回当前系统时间的毫秒数。可以通过将这个时间链接到Date构造函数中来创建对应的Dat…

    Java 2023年5月20日
    00
  • Springboot启动不检查JPA的数据源配置方式

    启动时不检查数据源配置可以使用Springboot的一些特定属性来实现。在Springboot中,这些属性主要定义在application.properties(或者application.yml)文件中。为了实现启动时不检查数据源配置,需要在这些文件中添加以下内容: spring.datasource.continue-on-error=true spri…

    Java 2023年5月20日
    00
  • 如何进行Java代码优化?

    如何进行Java代码优化? Java代码的优化可以优化程序的性能,减少资源的占用,提高性能的稳定性,以下是一些进行Java代码优化的技巧。 1. 变量的作用域 变量的作用域是指,变量在程序中可以被访问的范围,尽可能缩小变量的作用域可以提高代码性能。 示例: public class Demo { public void method() { //不需要在fo…

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