广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java什么是映射
  • 614
分享到

java什么是映射

java入门java映射 2022-02-23 06:02:22 614人浏览 才女
摘要

集是一个集合,它可以快速地查找现有的元素。但是,要查看一个元素,需要有要查找元素的精确副本。这不是一种非常通用的查找方式,因为在集合中查找元素总是要遍历集合。通常,我们知道某些键的信息,并想要查找与之对应的元素。映射(map)数据结构就是为

集是一个集合,它可以快速地查找现有的元素。但是,要查看一个元素,需要有要查找元素的精确副本。这不是一种非常通用的查找方式,因为在集合中查找元素总是要遍历集合。通常,我们知道某些键的信息,并想要查找与之对应的元素。映射(map)数据结构就是为此而设计的。映射用来存放键/值对。如果提供了键,就能够查找到值。它们之间是一一对应关系。

基本映射操作:

Java类库为映射提供了两个通用的实现:HashMap和TreeMap,这两个类都实现了Map接口

散列映射(HashMap)对键进行散列,树映射(TreeMap)用键的整体顺序对元素进行排序,并将其组织成搜索树。

散列或比较函数只能作用于键。与键关联的值不不能进行散列或比较

与集一样,散列映射比树映射稍微快一些,所以在不需要按照排列顺序访问键的时候,最好选用散列映射

OP->>要进行键值存储,必须使用put方法

OP->>要进行键值访问,必须使用get方法,且只能通过键来访问到值

OP->>如果找不到值却不想返回一个空对象,则使用getOrDefault(var1,var2),如果找不到值则返回var2。

键必须是唯一的,如果对一对映射调用两次put方法,则后一次调用会覆盖前一次调用。并返回第一次调用的结果

OP->>要进行键值对的移除,则要使用remove(键)的方法

OP->>要想获取键值对的数量,则要使用size()方法

OP->>要迭代处理每个键和值,最好是使用forEach方法,可以向这个方法提供一个lambda表达式,用来依次处理映射中的每一个元素

类似于scores.forEach((k,v)->System.out.println("key="+k+",value="+v));

下面示例程序演示了映射的操作过程,首先将键/值对添加到映射中。然后从映射中删除一个键,同时与之对应的值也被删除了。接下来,修改与某一个键对应的值,并调用get方法查看这个值。最后,迭代处理条目集。

代码:

package Collection.Map;
 
import java.util.*;
 
public class MapTest {
public static void main(String[] args) {
Map staff=new HashMap<>();
staff.put("144-25-5464", new Employee("Amy Lee"));
staff.put("567-24-2546", new Employee("Harry Hacker"));
staff.put("157-62-7935", new Employee("Gary Cooper"));
staff.put("456-62-5527", new Employee("Francesca Cruz"));
//打印所有成员
System.out.println(staff);
//删除某一成员
staff.remove("567-24-2546");
//替代一个成员
staff.put("456-62-5527", new Employee("Francesca Miller"));
//查看一个成员
System.out.println(staff.get("157-62-7935"));
//遍历映射
staff.forEach((k,v)->System.out.println("key="+k+",value="+v));
}
}
 
class Employee{
String name;
 
public Employee(String name) {
this.name = name;
}
 
public String toString() {
return "[name="+name+"]";
}
}

运行结果:

1573548741820926.jpg

下面是接口Map中常用的几个方法及其解释:

V get(Object key)

获取与键对应的值;返回与键对应的对象,如果在映射中没有这个对象则返回null。键可以为null。

default V getOrDefault(Object key,V defaultValue)

获得与键关联的值;返回与键关联的对象,或者如果未在映射中找到这个键,则返回defaultValue。

V put(K key,V value)

将键与对应的值关系插入到映射中。如果这个键已经存在,新的对象将取代与这个键对应的旧对象。这个方法将返回键对应的旧值。如果这个键以前没有出现过则返回null。键可以为null,但值不能为null。

void putAll(Map entries)

将给定映射中所有条目添加到这个映射中。

boolean containsKey(Object key)

如果映射中已经有这个键,则返回true。

boolean containsValue(Object value)

如果映射中已经有这个值,返回true。

default void forEach(BiConsumer action)

对这个映射中的所有键/值应用这个动作。

下面是HashMap类中的常用方法:

HashMap()

HashMap(int initialCapacity)

HashMap(int initialCapacity,float loadFactor)

用给定的容量和装填因子构造一个空散列映射(装填因子是一个0.0~1.0之间的一个数值。这个数值决定散列表填充百分比。一旦到了这个比例,就要将其再散列到更大的表中)。默认的装填因子是0.75。

下面是TreeMap类中常用的方法:

TreeMap()

为实现Comparable接口的键构造一个空的树映射。

TreeMap(Comparator c)

构造一个树映射,并使用一个指定的比较器对键进行排序。

TreeMap(Map entries)

构造一个树映射,并将某个映射中的所有条目添加到树映射中。

TreeMap(SortedMap entries)

构造一个树映射,将某个有序映射中的所有条目添加到树映射中,并使用与给定的有序映射相同的比较器。

下面是SortedMap接口的一些重要的方法:

Comparator comparator()

返回键进行排序的比较器。如果键是用Comparable接口的comparaTo方法进行比较的,返回null。

K firstKey()

K lastKey()

返回映射中最小元素和最大元素。

编程界网,大量的免费Java入门教程,欢迎在线学习

--结束END--

本文标题: java什么是映射

本文链接: https://www.lsjlt.com/news/3092.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java什么是映射
    集是一个集合,它可以快速地查找现有的元素。但是,要查看一个元素,需要有要查找元素的精确副本。这不是一种非常通用的查找方式,因为在集合中查找元素总是要遍历集合。通常,我们知道某些键的信息,并想要查找与之对应的元素。映射(map)数据结构就是为...
    99+
    2022-02-23
    java入门 java 映射
  • java映射的概念是什么
    在Java中,映射(Map)是一种数据结构,用于存储键值对(key-value pairs)的集合。每个键(key)都是唯一的,而值...
    99+
    2023-08-23
    java
  • Hibernate映射关联是什么
    这篇文章主要讲解了“Hibernate映射关联是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate映射关联是什么”吧!Hibernate映射关联关系和我们现实世界里事物的关...
    99+
    2023-06-17
  • Hibernate的集合映射是什么
    这期内容当中小编将会给大家带来有关Hibernate的集合映射是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。POJOs如下:Customer类---->customer表Order类对应---...
    99+
    2023-06-17
  • 什么是虚拟映射和mmap()
    这篇文章给大家介绍什么是虚拟映射和mmap(),内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。虚存映射我们知道,程序是存储在磁盘上到静态文件;进程是对程序到一次运行过程。在进程开始运行时,进程的代码和数据等内容必须装入到...
    99+
    2023-06-16
  • Java怎么映射到model
    要将Java映射到model,您可以按照以下步骤进行操作:1. 创建Java类作为model,该类应该包含与所需数据的属性相对应的成...
    99+
    2023-08-23
    Java model
  • Hibernate高级集合映射是什么
    本篇内容主要讲解“Hibernate高级集合映射是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hibernate高级集合映射是什么”吧!Hibernate高级集合映射主要分为有序集合、双向...
    99+
    2023-06-17
  • Linux内存映射指的是什么
    Linux内存映射指的是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 内存映射就是用户空间的一段内存区域映射到内核空间,映射成功后,用户对这段内存区域的修...
    99+
    2023-06-28
  • 云服务器内网映射是什么
    云服务器内网映射指的是将本地内网IP映射到云服务器的IP地址或公网IP地址范围内,从而实现跨云计算平台的访问。通常,云服务器通过内部的IP来映射用户访问,而云服务器本身也将访问地址映射到内部的IP,以便在云服务器的本地内网范围内实现用户的功...
    99+
    2023-10-26
    内网 服务器
  • 云服务器映射端口是什么
    云服务器的映射端口通常指云服务器提供商为客户端提供的网络接口,用于连接到其服务器以获得网络资源。您可以查看云服务器提供商的网站,以确定他们是否提供此类映射端口。 一般来说,在云服务器上使用的网络接口是动态主机配置协议(DHCP)。在DHC...
    99+
    2023-10-26
    端口 服务器
  • ps渐变映射的作用是什么
    这篇文章主要讲解了“ps渐变映射的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ps渐变映射的作用是什么”吧!ps渐变映射的作用:一、渐变映射的使用原理 利用 PS渐变映射工具,先...
    99+
    2023-07-04
  • Linux端口映射的方法是什么
    这篇文章主要介绍“Linux端口映射的方法是什么”,在日常操作中,相信很多人在Linux端口映射的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux端口映射的方法是什么”的疑惑有所帮助!接下来...
    99+
    2023-06-28
  • mybatis中mapper映射的方法是什么
    在MyBatis中,Mapper映射的方法是通过SQL语句来操作数据库。Mapper映射文件中定义了一系列的SQL语句,这些SQL语...
    99+
    2023-09-16
    mybatis
  • 云服务器端口映射是什么
    端口映射就是将外网主机IP地址的端口映射到内网主机,提供相应的服务。当用户访问该IP的端口时,服务器自动将请求映射到对应局域网内部的主机上。映射端口有两个含义:同端口映射,指通过端口转换来获取公网ip地址的端口。指端口映射出来的端口,就是把...
    99+
    2022-10-09
  • Sourcemap源代码映射的方法是什么
    今天小编给大家分享一下Sourcemap源代码映射的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Sourcema...
    99+
    2023-07-05
  • SpringBoot静态资源映射规则是什么
    这篇文章主要介绍了SpringBoot静态资源映射规则是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot静态资源映射规则是什么文章都会有所收获,下面我们一起来看看吧。1. 静态资源映射规则...
    99+
    2023-07-05
  • Linux主机名映射的方法是什么
    这篇文章主要讲解了“Linux主机名映射的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux主机名映射的方法是什么”吧!1. 查看主机名: hostname&nbs...
    99+
    2023-06-28
  • Linux内核反向映射机制是什么
    本篇内容主要讲解“Linux内核反向映射机制是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux内核反向映射机制是什么”吧!1.反向映射的发展实际上在早期的Linux内核版本中是没有反...
    99+
    2023-06-15
  • Java 8日期与数据库日期的映射关系是什么
    Java 8日期与数据库日期的映射关系是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java8中有很多新型的日期类型,比传统的日期类型好用。使用什么和数据库的日期进行映射...
    99+
    2023-06-26
  • 什么是java反射
    反射是啥?反射既然有“反”,就说明它是一个逆向的过程。那我们先来看看正向过程是怎样的。设计一个类,类实例化成对象,对象调方法或属性去实现一些功能。那反射是什么呢?不知道大家是否还记得上图,这是刚接触java时学到的知识。我自己的理解是现在是...
    99+
    2021-08-17
    java入门 java 反射
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作