Map集合的使用

Map是一种键-值对(key-value)集合,在jdk1.8之后,它的结构由数组+链表,或者是数组+红黑树组成.

在Map接口中,有两个主要集合HashMap和TreeMap.

存储数据的特点是:无序,唯一;这里的唯一是指key值唯一,value值可以重复.

Map 集合最典型的用法就是成对地添加、删除 key-value.

存储数据的特点是:唯一且有序的,一般是按升序的方式排列

实现要求:实现comparable接口,并且重写compareTo的方法用来实现它的排序

使用map,在控制台输入一串字符串,统计字符串中每个字符出现的次数,并按照次数的降序进行排序

先遍历字符串,得到每个字符,在判断map中是否存在该字符,如果存在,使用put()方法来添加,得到value值再加1;如果不存在,添加该字符,value初始值为1.

下面进行排序,我们知道,TreeMap只能根据key来排序,不能根据value来排序的.所以用TreeMap来排序显然不符合这题意的要求,下面介绍TreeSet,它可以指定值来自定义排序

与TreeMap相同,要求实现Comparable接口,并且重写compareTo的方法.下面用TreeSet来进行排序,把Map集合转为Set集合

使用 HashMap来存储学生信息,属性有学号,和姓名,根据学号进行删除操作。

首先分析,key值是唯一的,所以用学号来做key.

使用containsKey()先判断是否包含此学生的学号, remove() 方法将对应的元素删除

遍历Map集合,这里用到的是迭代器;jdk专门提供的迭代器用于遍历Collection接口的集合,主要用于List,Set集合,将map转换为set集合,

使用map.get()方法,获得对应key的value值,最后输出删除后的学生

Original: https://www.cnblogs.com/pilpill/p/16571799.html
Author: Tmillion
Title: Map集合的使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/587050/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java学习-086-Springboot 自定义启动 banner 信息

    Springboot 启动时会加载默认的 banner 信息,并在控制台输出。因而可以通过自定义 banner 文件内容实现启动 banner 的自定义。 在项目的 resouce…

    Java 2023年5月29日
    090
  • Tinker Flutter热修复

    在Android里面,Flutter打包之后的产物是一个.so文件(libapp.so),Tinker热更新支持so文件更新,自然也就支持Flutter热更新。 理论上这样就可行了…

    Java 2023年5月30日
    0103
  • Nginx 源码分析– 内存池(pool)的分析 一

    Nginx内存池(pool)的管理的实现主要写在ngx_palloc.c这个文件中,为了明晰的看该文件中的函数之间的关系,我们描绘出以下一张简单的示意图: 图1 Nginx内存池(…

    Java 2023年6月15日
    098
  • Effective Java 第三版—— 90.考虑序列化代理替代序列化实例

    Tips书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code注意,书中的有些代码里方法是基于Java 9…

    Java 2023年5月29日
    089
  • Spring Cloud Gateway 自定义过滤器 filter

    – CheckAuth=lisi server: port: 8060 spring: application: name: api-gateway cloud: # gatewa…

    Java 2023年5月30日
    082
  • RabbitMQ镜像集群配置

    上面已经完成RabbitMQ默认集群模式, 但并不保证队列的高可用性,队列内容不会复制。如果队列节点宕机直接导致该队列无法应用,只能等待重启,所以要想在队列节点宕机或故障也能正常应…

    Java 2023年5月30日
    082
  • 常见的网页复制粘贴禁用问题

    1.网页无法选取文字 按下键盘的F12调出开发者工具,点击console控制台,输入以下代码后回车即可:解除网页无法选取文字 var eles = document.getElem…

    Java 2023年6月14日
    0138
  • Java 8 Collectors.collectingAndThen()

    JDK源码 java.util.stream.Collectors#collectingAndThen方法的作用是将Collector的结果在执行一个额外的finisher转换操作…

    Java 2023年5月29日
    086
  • 04-MyBatisPlus条件构造器

    一、wapper介绍 Wrapper : 条件构造抽象类,最顶端父类 AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件 QueryWrapp…

    Java 2023年6月15日
    093
  • 云服务器ECS部署和卸载RabbitMQ

    云服务器ECS部署RabbitMQ RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,用于在分布式系统中存储转发消息,有良好的易用性、扩展性和高可用性。本文介…

    Java 2023年6月14日
    064
  • Mybatis plus 中数据库中字段有SQL关键字的处理方法

    最近碰到一个问题,mysql的数据表中有一个字段desc,如果使用mybatis plus来访问数据库,使用继承BaseMapper<>的方法。自己如果不书写xml,自…

    Java 2023年6月7日
    075
  • springboot自动配置原理以及手动实现配置类

    springboot自动配置原理以及手动实现配置类 1、原理 spring有一个思想是”约定大于配置”。 配置类自动配置可以帮助开发人员更加专注于业务逻辑开…

    Java 2023年6月15日
    084
  • Springboot整合mybatisPlus+Swagger3.0

    1. SpringBoot+Mybatis+MybatisPlus com.baomidou mybatis-plus-boot-starter 3.5.1 org.mybatis…

    Java 2023年6月8日
    087
  • java学习之注解

    1.注解是什么:(1)可以叫做注释类型,注解是一种引用数据类型,编译后也是生成class文件(2)提供信息给编译器: 编译器可以利用注解来探测错误和警告信息比如 @Override…

    Java 2023年6月13日
    085
  • SSH 端口转发(本地转发与远程转发)

    SSH 端口转发处于机构SSH用于从所述客户端机器隧道应用程序的端口到服务器计算机上,或反之亦然。它可用于为 遗留应用程序添加加密、 通过防火墙,并且一些系统管理员和 IT 专业人…

    Java 2023年5月30日
    092
  • volatile关键字理解

    volatile是一个轻量级的同步机制,相比传统的锁(如synchronized),在性能上面是有优势的,但是虚拟机对锁有过优化,所以很难确切的说volatile比synchron…

    Java 2023年6月5日
    091
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球