首页 > 编程语言 >Java基础核心Map

Java基础核心Map

时间:2024-04-03 15:33:55浏览次数:28  
标签:Map Java HashMap map 核心 key put new

在Java中,Map是一种用于存储键值对(key-value pairs)的集合类型。它提供了一种将键映射到值的方式,其中每个键在Map中都是唯一的。Map接口是java.util包中的一部分。

常用实现类

  1. HashMap: 基于哈希表实现的Map,它提供了平均时间复杂度为O(1)的插入、删除和查找操作。但它不保证元素的顺序。

  2. TreeMap: 基于红黑树实现的Map,它保持元素的有序状态。它提供了基于键的排序,因此所有键对象必须实现Comparable接口或者通过构造方法传入一个Comparator对象。

  3. LinkedHashMap: 继承自HashMap,它保持元素插入的顺序,可以按照插入顺序或者访问顺序进行迭代。

  4. Hashtable: 类似于HashMap,但是它是线程安全的。不过,在大多数情况下,推荐使用ConcurrentHashMap来代替Hashtable

  5. ConcurrentHashMap: 是HashMap的线程安全版本,它提供了高效的并发访问。

 

此图源自:【韩顺平 零基础30天学会Java】图 Map_idea 无法查看map扩容 韩顺平-CSDN博客 

 

常用方法:

  • put(K key, V value): 将指定的值与指定的键关联在一起,并放入Map中。
  • get(Object key): 返回指定键所映射的值,如果此Map不包含该键的映射关系,则返回null
  • remove(Object key): 删除指定键及其对应的值。
  • containsKey(Object key): 判断Map中是否包含指定的键。
  • containsValue(Object value): 判断Map中是否包含指定的值。
  • size(): 返回Map中键值对的数量。
  • isEmpty(): 判断Map是否为空。

 常见应用:

存储配置信息Map可用于存储应用程序的配置信息,其中键表示配置项的名称,值表示配置项的值。这种方式使得配置信息可以轻松地被读取和修改。

Map<String, String> config = new HashMap<>();
config.put("server", "localhost");
config.put("port", "8080");
config.put("username", "admin");
config.put("password", "password");

缓存Map可以用作缓存,其中键表示缓存的键,值表示相应的缓存数据。使用Map作为缓存可以快速查找和检索数据。

Map<String, Object> cache = new HashMap<>();
cache.put("user1", new User("John", 25));
cache.put("user2", new User("Alice", 30));

 请求参数和响应参数的映射:在Web开发中,常常使用Map来表示HTTP请求的参数和响应的参数。

Map<String, String> requestParams = new HashMap<>();
requestParams.put("username", "john");
requestParams.put("password", "password");

Map<String, Object> responseParams = new HashMap<>();
responseParams.put("status", "success");
responseParams.put("message", "Login successful");

 计数器Map可以用于计数器,其中键表示要计数的对象,值表示该对象出现的次数。

Map<String, Integer> counter = new HashMap<>();
String[] words = {"apple", "banana", "apple", "orange", "banana"};
for (String word : words) {
    counter.put(word, counter.getOrDefault(word, 0) + 1);
}

 路由表:在网络编程中,Map可以用来存储路由表,其中键表示目的地址,值表示下一跳的地址。

Map<String, String> routingTable = new HashMap<>();
routingTable.put("192.168.0.1", "192.168.1.1");
routingTable.put("192.168.0.2", "192.168.1.2");

数据库结果集映射:在数据库操作中,Map可以用于将数据库查询的结果集映射为键值对,便于处理和操作数据。

 Map<Integer, String> studentMap = new HashMap<>();
// 将数据库查询结果映射到Map中
ResultSet resultSet = statement.executeQuery("SELECT id, name FROM students");
while (resultSet.next()) {
    int id = resultSet.getInt("id");
    String name = resultSet.getString("name");
    studentMap.put(id, name);
}

遍历方法:

 使用entrySet()遍历(推荐): 这种方法使用Map.entrySet()方法返回Map中包含的所有键值对的Set视图,然后通过迭代这个Set来遍历Map

Map<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 15);

// 遍历Map
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}

使用keySet()遍历: 这种方法使用Map.keySet()方法返回Map中所有键的Set视图,然后通过迭代这个Set来遍历Map,并通过键获取对应的值。

Map<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 15);

// 遍历Map
for (String key : map.keySet()) {
    System.out.println("Key: " + key + ", Value: " + map.get(key));
}

 使用Java 8的forEach()方法: 在Java 8及以上版本中,Map接口提供了forEach()方法,可以使用Lambda表达式来遍历Map

Map<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("apple", 10);
map.put("banana", 20);
map.put("orange", 15);

// 使用forEach遍历Map
map.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value));

标签:Map,Java,HashMap,map,核心,key,put,new
From: https://blog.csdn.net/m0_55049655/article/details/137294022

相关文章

  • Java集合框架详解:List、Set、Map及其实现类的使用与特性 第一章
    目录一、引言定义:重要性:文章目的:二、Java集合框架概述集合框架结构:常用接口概览:集合框架通用特性:一、引言Java集合框架是Java语言提供的一套统一、灵活且高效的API,用于存储、操作和管理对象集合的数据结构。它作为Java标准库的核心组成部分,对于任何Java开发者而......
  • Java集合框架详解:List、Set、Map及其实现类的使用与特性 第二章
    目录一、List接口及其常见实现类List接口定义与特性:ArrayList:Vector与Stack:二、Set接口及其常见实现类Set接口定义与特性:HashSet:TreeSet:LinkedHashSet:一、List接口及其常见实现类List接口定义与特性:List接口是Java集合框架中一个重要的接口,继承自Collection接口......
  • Java集合框架详解:List、Set、Map及其实现类的使用与特性 第三章
    目录一、JavaMap接口及其常见实现类Map接口定义与特性HashMapTreeMapLinkedHashMapHashtable与ConcurrentHashMap一、JavaMap接口及其常见实现类Map接口定义与特性Map接口是Java集合框架中的一个重要接口,它提供了一种键值对(Key-ValuePair)的存储结构。Map的主要......
  • Java集合框架详解:List、Set、Map及其实现类的使用与特性 第四章
    目录一、Java集合框架的选择与优化选择策略性能优化二、结论一、Java集合框架的选择与优化选择策略根据数据特性和应用需求,选择合适的Java集合类型应考虑以下几个关键因素:是否允许重复:不允许重复:如果元素必须唯一,应选择Set接口的实现类,如HashSet(无序,查找速度快)或T......
  • 24-Web服务核心功能有哪些,如何实现?
     在Go项目开发中,绝大部分情况下,我们是在写能提供某种功能的后端服务,这些功能以RPCAPI接口或者RESTfulAPI接口的形式对外提供,能提供这两种API接口的服务也统称为Web服务。  Web服务的核心功能将这些功能分成了基础功能和高级功能两大类,并总结在了下面这张图中: 要......
  • 走向Java的第一步,Hello,World
    此笔记仅针对自己在学习路上所学所遇的问题!!!不管任何语言,敲的第一个代码毋庸置疑就是helloworld,Java的helloworld如下:点击查看代码publicclassHello{ publicstatic void main(String[]args){ System.out.print("Hello,World!!"); }}此处注意点:Java书写需严格规......
  • 用JavaScript实现响应式设计的魔法
    在数字世界的迷宫中,响应式设计就像是一把万能钥匙,能打开任何大小屏幕的大门。不论是巨大的桌面显示器,还是袖珍的手机屏幕,响应式设计确保你的网站或应用能在任何设备上都提供优质的用户体验。但如何用JavaScript施展这种魔法呢?让我们一探究竟。使用媒体查询监听器在CSS中,我......
  • 使用JavaScript提升Web应用的安全性
    在构建Web应用时,安全性是一个我们绝不能忽视的重要方面。随着网络攻击手段的日益狡猾和复杂,如何保护我们的应用和用户的数据安全成了每个开发者必须面对的问题。本文将介绍一些常见的Web安全威胁,比如跨站脚本攻击(XSS)、跨站请求伪造(CSRF),以及如何通过使用ContentSecurityPol......
  • Java基础知识
    1.Java中的几种数据类型除了8种简单数据类型之外的所有数据类型都被称为引用数据类型,引用数据类型变量的内存大小统一为4字节,记录的是其引用对象的地址。2.全局变量与局部变量实例变量、类变量、常量都是属于成员变量的,成员变量又被称为全局变量。被static关键字修饰的变量,叫......
  • 逆袭大厂之路——Java程序员必备金九银十跳槽面试涨薪秘籍
    JAVA集合JAVA多线程并发JAVA基础Spring原理微服务Netty与RPC网络ZookeeperKafka自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是......