Java Map接口

在本教程中,我们将学习Java Map接口及其方法。

Java collections框架的Map接口提供了Map数据结构的功能。

它实现了Collection接口。

map的工作流程

在Java中,Map元素存储在键/值对中。 键是与各个值相关联的唯一值。

Map集合不能包含重复的键。并且,每个键都与一个值相关联。

我们可以使用与它们关联的键来访问和修改值。

在上图中,我们有值:United States,Brazil,和Spain。我们都有相应的键:us,br和es。

现在,我们可以使用它们的对应键访问这些值。

注意:Map接口维护3个不同的集合:键集

值集

键/值关联(Map集合)的集合。

因此,我们可以分别访问键,值和关联。

实现Map的类

由于Map是接口,因此无法从中创建对象。

为了使用Map接口的功能,我们可以使用以下类:

这些类在集合框架中定义并实现Map接口。

继承Map的接口

Map接口也由以下这些子接口继承:

如何使用map?

在Java中,我们必须导入java.util.Map包才能使用Map。导入包后,将按照以下方法创建map。

//使用HashMap类创建Map

Map numbers = new HashMap<>();

在上面的代码中,我们创建了一个名为numbers的Map。我们已经使用HashMap类来实现Map接口。

这里,Key - 用于关联map中每个元素(值)的唯一标识符

Value - map中按键关联的元素

map方法

Map接口包括Collection接口的所有方法。这是因为Collection是Map的超级接口。

除了Collection接口中可用的方法之外,Map接口还包括以下方法:put(K,V) - 将键K和值V的关联插入到map中。如果键已经存在,则新值将替换旧值。

putAll() - 将指定Map集合中的所有条目插入此Map集合中。

putIfAbsent(K,V) - 如果键K尚未与value关联,则插入关联V。

get(K) - 返回与指定键K关联的值。如果找不到该键,则返回null。

getOrDefault(K,defaultValue) - 返回与指定键K关联的值。如果找不到键,则返回defaultValue。

containsKey(K) - 检查指定的键K是否在map中。

containsValue(V) - 检查指定的值V是否存在于map中。

replace(K,V) - 将键K的值替换为新的指定值V。

replace(K,oldValue,newValue) - 仅当键K与值oldValue相关联时,才用新值newValue替换键K的值。

remove(K) - 从键K表示的Map中删除条目。

remove(K,V) - 从Map集合中删除键K与值V相关联的条目。。

keySet() -返回Map集合中存在的所有键的集合。

values() -返回一组包含在Map集合中的所有值。

entrySet() -返回map中存在的所有键/值映射的集合。

map接口的实现

1.实现HashMap类

示例

import java.util.Map;

import java.util.HashMap;

class Main {

public static void main(String[] args) {

//使用HashMap类创建map

Map numbers = new HashMap<>();

//将元素插入map集合

numbers.put("One", 1);

numbers.put("Two", 2);

System.out.println("Map: " + numbers);

//map的键

System.out.println("Keys: " + numbers.keySet());

//map的值

System.out.println("Values: " + numbers.values());

//map的条目

System.out.println("Entries: " + numbers.entrySet());

//从map集合中删除元素

int value = numbers.remove("Two");

System.out.println("被删除的值是: " + value);

}

}

输出结果Map: {One=1, Two=2}

Keys: [One, Two]

Values: [1, 2]

Entries: [One=1, Two=2]

被删除的值是: 2

要了解更多信息HashMap,请访问Java HashMap。

2.实现TreeMap类

示例

import java.util.Map;

import java.util.TreeMap;

class Main {

public static void main(String[] args) {

//使用TreeMap创建map

Map values = new TreeMap<>();

//插入元素到map

values.put("Second", 2);

values.put("First", 1);

System.out.println("使用TreeMap创建map: " + values);

//替换值

values.replace("First", 11);

values.replace("Second", 22);

System.out.println("新的Map: " + values);

//从map集合中删除元素

int removedValue = values.remove("First");

System.out.println("被移除的值: " + removedValue);

}

}

输出结果使用TreeMap创建map: {First=1, Second=2}

新的Map: {First=11, Second=22}

被移除的值: 11

要了解更多信息TreeMap,请访问Java TreeMap。

java map 教程_Java Map接口相关推荐

  1. java map包_java Map

    java Map CreateTime--2017年5月26日08:44:16 Author:Marydon 四.java数据类型之Map 需要导入包: importjava.util.Map;imp ...

  2. java joinpoint教程_Java的教程

    Java编程语言 Java编程语言中,左侧的导航栏(Java编程语言),可以快速定位文章的内容.这篇文章主要汇总以下: Java编程语言学习:Java的概述,Java的基础,Java面向对象的概念,J ...

  3. java 请求响应_java http接口请求响应 request response

    接口类: 1 package org.sunshine.dcda.epg.wechat.controller.niao; 2 3 import javax.servlet.http.HttpServl ...

  4. java设计模式教程_Java设计模式教程

    java设计模式教程 课程大纲 架构和计算机科学中的设计模式是记录特定专业领域中设计问题的解决方案的正式方法. 这个想法是由建筑师Christopher Alexander在建筑领域引入的,并已被修改 ...

  5. java反射教程_Java反射教程

    java反射教程 在本教程中,我主要编写一些示例来介绍Java反射可以做什么. 希望它可以给您这个概念的概述. 请留下您的评论以寻求建议. 什么是反射? 简而言之,反射是程序在运行时检查和修改对象的结 ...

  6. java cache教程_Java 中常用缓存Cache机制的实现

    缓存主要可分为二大类: 一.通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式: 二.内存缓存,也就是实现一个类中静态Map,对这个Map ...

  7. java nio教程_Java NIO教程

    java nio教程 1.简介 Java NIO是Java 1.4引入的一个库. 自从Java NIO推出以来,它提供了另一种方法来处理I / O和网络事务. 它被认为是Java网络和Java IO库 ...

  8. java filter教程_Java Web Filter 过滤器学习教程(推荐)

    一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态 ...

  9. java io教程_Java IO教程

    java io教程 Java provides several classes in java.io package to work with text, stream data, and file ...

最新文章

  1. python怎么安装matplotlib-在python3.7下怎么安装matplotlib
  2. 使用Consul实现服务发现:instance-id自定义(3种方式)
  3. 如何使用 Python 进行时间序列预测?
  4. Asp.Net生命周期系列一
  5. matlab优化 带参数设置,优化选项参考 - MATLAB Simulink - MathWorks 中国
  6. ios保存gif到相册_如何在iOS中保存和下载GIF图片
  7. CVPR 2019 | 步步为营!通过迭代式模糊核预测提高超分辨质量
  8. Hashtable 和 HashMap 的区别
  9. 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(远程升级WIFI内部程序)
  10. java io面试题_【Java面试】Java常见IO面试题!
  11. MyBaitis框架环境搭建(一)
  12. win7下的的IVF2011+VS2010以及OpenMPI的安装与配置
  13. 安卓开发3d模型展示源码_Android(安卓)全套开发资料视频+源码
  14. 小说网站源码_ptcms精美小说阅读网站源码(带采集规则)
  15. 安装3dmax出现:error 1311 找不到源文件
  16. Es与MongoDB地理数据搜索性能比较
  17. [转]论window和Linux之长短
  18. 三星i919u android 6,SCH-I919U
  19. 陈宝存:楼市调控不撞南墙不回头
  20. [L氏并查集] Python 列表法实现非递归并查集,轻松权重优化。

热门文章

  1. R操作MySQL数据库创建表、删除表、增删改查(CRUD)
  2. python代码实现插入排序
  3. KL变换+PCA+关系
  4. java message bus_【Microsoft Azure学习之旅】消息服务Service Bus的学习笔记及Demo示例...
  5. life science 研究领域之生物信息学
  6. 数字图像处理5:几何变换
  7. tensorflow 回归的例子,包括保存模型和重新预测
  8. ImportError: cannot import name ‘secure_filename‘的解决办法
  9. 统计学习导论 Chapter5 -- Resampling Methods
  10. LINUX下线程默认栈大小的设置