Java Map集合用法详解

Java Map集合用法详解

什么是Map集合?

Java中的Map集合是一种用于存储键值对的数据结构,其中每个键都是唯一的。Map接口提供了多个实现类,例如HashMap、TreeMap和LinkedHashMap等。

Map集合的常用方法

以下是Map集合的一些常用方法:

  • put(key, value):将指定键和值添加到Map集合中。
  • get(key):返回指定键所对应的值。
  • containsKey(key):返回Map集合中是否包含指定键。
  • containsValue(value):返回Map集合中是否包含指定值。
  • size():返回Map集合中键值对的数量。
  • remove(key):从Map集合中删除指定键及其对应的值。
  • keySet():返回Map集合中所有键的Set视图。
  • values():返回Map集合中所有值的Collection视图。
  • entrySet():返回Map集合中所有键值对的Set视图。

示例1:使用HashMap存储学生成绩

Map<String, Integer> scores = new HashMap<>();
scores.put("张三", 90);
scores.put("李四", 80);
scores.put("王五", 70);

System.out.println(scores.get("张三")); // 输出90
System.out.println(scores.containsKey("王五")); // 输出true
System.out.println(scores.containsValue(60)); // 输出false

scores.remove("李四");
System.out.println(scores.size()); // 输出2

System.out.println(scores.keySet()); // 输出[张三, 王五]
System.out.println(scores.values()); // 输出[90, 70]
System.out.println(scores.entrySet()); // 输出[张三=90, 王五=70]

在上述示例中,我们使用HashMap存储了三名学生的成绩,并使用了Map集合的常用方法来获取成绩、判断键是否存在、删除键值对以及获取键、值、键值对的集合视图。

示例2:使用LinkedHashMap实现LRU缓存

下面是一个使用LinkedHashMap实现LRU(Least Recently Used)缓存的示例代码:

public class LRUCache<K, V> extends LinkedHashMap<K, V> {
    private int capacity; // 缓存容量

    public LRUCache(int capacity) {
        super(16, 0.75f, true); // 初始化LinkedHashMap,启用访问顺序
        this.capacity = capacity;
    }

    @Override
    protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
        return size() > capacity; // 当缓存大小超过容量时,移除最近最少使用的元素
    }

    public static void main(String[] args) {
        LRUCache<Integer, String> cache = new LRUCache<>(3);
        cache.put(1, "a");
        cache.put(2, "b");
        cache.put(3, "c");
        System.out.println(cache); // 输出{1=a, 2=b, 3=c}

        cache.get(2); // 访问2,更新访问顺序
        cache.put(4, "d"); // 添加4,超出容量,移除1
        System.out.println(cache); // 输出{2=b, 3=c, 4=d}
    }
}

在上述示例中,我们自定义了一个LRUCache类,继承自LinkedHashMap,并通过重写removeEldestEntry方法实现了LRU缓存的功能。在main方法中,我们创建了一个容量为3的缓存,并不断向其中添加元素,超出容量时移除最近最少使用的元素,实现了在缓存容量固定的情况下保持最相关、最有用的数据。

总结

Map集合是Java中非常常用的一种数据结构,可以方便地存储、查找和操作键值对数据。通过本篇攻略,我们了解了Map集合的一些常见用法和注意事项,并通过示例代码展示了HashMap和LinkedHashMap的使用场景和实现方法。相信读者们能够从中受益,提升自己的Java编程能力。

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

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

相关文章

  • MyBatis实现动态查询、模糊查询功能

    下面是MyBatis实现动态查询、模糊查询功能的完整攻略。 动态查询 动态查询就是查询条件随着用户的选择而动态生成的查询语句。MyBatis提供了三种方式来实现动态查询: If If标签用于判断某个条件成立时才会执行包含在其中的查询语句,示例代码如下: <select id="dynamicIfTest" parameterType…

    Java 2023年5月19日
    00
  • C++字符串的处理详解

    C++字符串的处理详解 在C++中,字符串是一种很重要的数据类型。可以使用以下两种方法来处理字符串: 1. 使用C风格的字符串处理方式 C风格的字符串其实是一个字符数组,字符串的结束标志是’\0’。 字符串的定义: char str[10]; //定义一个长度为10的字符数组作为字符串 字符串的输出: printf("%s", str);…

    Java 2023年5月27日
    00
  • Java如何实现支付宝电脑支付基于servlet版本

    Java 如何实现支付宝电脑支付基于 Servlet 版本,具体的实现步骤如下: 1. 注册支付宝商家账号 首先需要注册一个支付宝商家账号。 2. 下载支付宝开发者工具包 下载支付宝提供的开发者工具包,官方推荐使用 Java 版本的 SDK。 3. 创建订单 在进行支付前需要创建一个订单,在创建订单时需要填写订单的一些基本信息,例如订单金额、商品名称、订单号…

    Java 2023年5月26日
    00
  • J2EE Servlet上传文件到服务器并相应显示功能的实现代码

    下面是实现“J2EE Servlet上传文件到服务器并响应显示功能”的攻略,并提供两条示例代码: 1.前期准备 在开始实现功能之前,我们需要进行一些前期准备工作: 在web.xml文件中配置相应的Servlet,包括Servlet的名称、Servlet的URL映射、Multiform数据的解析方式等等。 在前端页面中添加表单元素,包括file类型的input…

    Java 2023年5月19日
    00
  • Idea开发工具之SpringBoot整合JSP的过程

    接下来我会详细讲解在Idea开发工具中如何整合SpringBoot和JSP。 准备工作 在开始之前,确保你已经完成以下准备工作: 安装了JDK和Idea开发工具。 创建一个SpringBoot项目。 确保pom.xml中已经添加了对于Spring Web和Tomcat的依赖。 整合JSP 第一步:在pom.xml中添加依赖 在pom.xml中添加以下依赖: …

    Java 2023年6月15日
    00
  • 使用JDBC连接ORACLE的三种URL格式

    使用JDBC连接ORACLE的三种URL格式: 在使用JDBC连接ORACLE时,需要使用相应的JDBC驱动程序,同时也需要正确的连接URL。以下是三种连接ORACLE数据库的URL格式: THIN模式 jdbc:oracle:thin:@[host][:port]:SID 其中,[host]为ORACLE数据库所在的IP地址或主机名;[:port]为数据库…

    Java 2023年6月16日
    00
  • 详解Java中的线程让步yield()与线程休眠sleep()方法

    我们来详细讲解一下Java中线程让步(yield())和线程休眠(sleep())方法的用法和区别。 一、线程让步(yield()) 线程让步是指让出当前线程对CPU的占用权,使得其他等待执行的线程有机会运行。Java中提供了线程让步的方法yield()。 其语法格式如下: public static void yield() 实例: 下面是一个简单的示例,…

    Java 2023年5月19日
    00
  • 关于spring data jpa 模糊查询like的坑点

    好的。首先让我们讨论一下”关于Spring Data JPA模糊查询Like的坑点”的具体情况。 什么是Spring Data JPA模糊查询Like的坑点? 如果我们想使用Spring Data JPA执行模糊查询(例如使用LIKE操作符),我们需要注意一些事项。这些主要涉及到通配符的使用和查询条件的拼接。 通配符的使用 在使用LIKE操作符时,我们需要使…

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