JAVA黑马程序员day12--集合进阶(下部--双列集合)

在这里插入图片描述

Map

HashMap

在这里插入图片描述

练习一

在这里插入图片描述
需提前定义学生类,并重写HashMap方法(不然无法覆盖)

public class MapDemo4 {public static void main(String[] args) {//1.创建HashMap对象HashMap<Student,String> hm=new HashMap<>();//2、创建3个学生对象Student s1=new Student("zhangsan",23);Student s2=new Student("lisi",24);Student s3=new Student("wangwu",25);Student s4=new Student("wangwu",25);hm.put(s1,"天津");hm.put(s2,"北京");hm.put(s3,"福建");//被覆盖hm.put(s4,"山东");Set<Student> keys =hm.keySet();for (Student key : keys) {String value=hm.get(key);System.out.println(key+"="+value);}}
}

在这里插入图片描述

练习2

在这里插入图片描述

package day12;import java.util.*;public class MapDemo5 {public static void main(String[] args) {//1.需要先让同学们投票//定义一个数组,存储四个景点String[] arr={"A","B","C","D"};//利用随机数模拟80个同学的投票,并把投票的结果存储起来ArrayList<String> list=new ArrayList<>();Random r=new Random();for(int i=0;i<80;i++){int index=r.nextInt(arr.length);list.add(arr[index]);}//2.如果要统计的东西比较多,不方便使用计数器思想//我们可以定义map集合,利用集合进行统计HashMap<String,Integer> hm=new HashMap<>();for (String name : list) {if(hm.containsKey(name)){int count=hm.get(name);count++;//把新的次数再次添加到集合当中hm.put(name,count);}else{//不存在hm.put(name,1);}}System.out.println(hm);//3.求最大值int max=0;Set<Map.Entry<String,Integer>> entries=hm.entrySet();for (Map.Entry<String, Integer> entry : entries) {int count=entry.getValue();if(count>max){max=count;}}System.out.println(max);//4.判断哪个景点的次数和最大值一样,如果一样,打印出来for (Map.Entry<String, Integer> entry : entries) {int count=entry.getValue();if(count==max){System.out.println(entry.getKey());}}}
}

LinkedHashMap

在这里插入图片描述

TreeMap

在这里插入图片描述
TreeMap练习:
在这里插入图片描述

package day12;import java.util.TreeMap;public class TreeMapDemo {public static void main(String[] args) {/** 新的统计思想:利用Map集合进行统计* 如果题目中没有要求对结果进行排序,默认使用HashMap* 如果题目中要求对结果进行排序,请使用TreeMap** 键:表示要统计的内容* 值:表示次数* *///1.定义字符串String s="aababcabcdabcde";//2.创建集合TreeMap<Character,Integer> tm=new TreeMap<>();//3.遍历字符串得到里面的每一个字符for (int i = 0; i < s.length(); i++) {//拿着c到集合中判断是否存在//存在,表示当前字符又出现了一次//不存在,表示当前字符是第一次出现char c=s.charAt(i);if(tm.containsKey(c)){//存在//先把已经出现的次数拿出来int count=tm.get(c);//当前字符又出现了一次count++;//把自增之后的结果添加到集合当中tm.put(c,count);}else{//不存在tm.put(c,1);}}//4.遍历集合,并按照指定格式进行拼接//a(5)b(4)……//此处使用lambda表达式进行遍历//使用StringBuilder进行拼接StringBuilder sb=new StringBuilder();tm.forEach((key,value)-> sb.append(key).append("(").append(value).append(")"));System.out.print(sb);}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/79542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rust更换Cargo国内源,镜像了寂寞

换皮不换身 换了国内源&#xff0c;构建时该卡还会卡。因为它所谓的换源&#xff0c;只是更换crates.io“索引”的源&#xff0c;而不是package“内容”的源。换了国内源后&#xff0c;在国内编译时访问 crates.io-index 自然会快很多&#xff0c;可是crates.io-index里面的信…

【LeetCode与《代码随想录》】贪心算法篇:做题笔记与总结-JavaScript版

代码随想录 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 文章目录 455. 分发饼干376. 摆动序列53. 最大子数组和122. 买卖股票的最佳时机 II55. 跳跃游戏45. 跳跃游戏 II1005. K 次取反后最大化的数组和134. 加油站135. 分发糖果&#xff08;困难&#…

string的使用和模拟实现

&#x1f493;博主个人主页:不是笨小孩&#x1f440; ⏩专栏分类:数据结构与算法&#x1f440; C&#x1f440; 刷题专栏&#x1f440; C语言&#x1f440; &#x1f69a;代码仓库:笨小孩的代码库&#x1f440; ⏩社区&#xff1a;不是笨小孩&#x1f440; &#x1f339;欢迎大…

iisfastchi漏洞复现

1.查看版本 2.在路径中写入 php脚本 发现使用不了 3.环境搭建 结局打开 把限制打开

SideBar 侧边导航与内容区域交互重写【Ant Design Mobile】

需求&#xff1a;SideBar 侧边导航与内容区域交互 点击侧边栏某一项时&#xff0c;相对应内容区域滚动到视口顶部滚动视口区域&#xff0c;到某一项内容区域&#xff0c;侧边栏选中状态也会跟着变化 const SideBarAgain: React.FC<PopupProps> (props) > {// 父组件…

可扩展性表设计方案

文章目录 1 使用预留字段2 使用JSON字段3 使用单表继承4 构建属性表5 直接构建新表6 适当冗余 1 使用预留字段 在表设计初期&#xff0c;可以预留一些命名通用的备用字段&#xff0c;例如field1、field2、field3。当业务需要增加新字段时&#xff0c;就直接使用这些预留字段,无…

Xilinx FPGA 7系列 GTX/GTH Transceivers (1)

初识Xlilix GTX 1概述 Xilinx 7系列FPGA全系所支持的GT,GT资源是Xilinx系列FPGA的重要卖点,也是做高速接口的基础,GT的意思是Gigabyte Transceiver,G比特收发器。不管是PCIE、SATA、MAC等,都需要用到GT资源来做数据高速串化和解串处理,Xilinx不同的FPGA系列拥有不同的G…

Kafka中Consumer源码解读

Consumer源码解读 本课程的核心技术点如下&#xff1a; 1、consumer初始化 2、如何选举Consumer Leader 3、Consumer Leader是如何制定分区方案 4、Consumer如何拉取数据 5、Consumer的自动偏移量提交 Consumer初始化 从KafkaConsumer的构造方法出发&#xff0c;我们跟踪到…

前端JavaScript中异步的终极解决方案:async/await

&#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 1. 背景 在深入讨论 async/await 之前&#xff0c;我们需要了解一下 JavaScript 的单线程和非阻塞的特性。JavaScript 是…

AD22使用笔记+积累库

一、前言 使用AD9习惯了&#xff0c;但是需求逐渐上来了就不够用了&#xff0c;好多快捷的新功能要新版本软件才能用&#xff0c;所以升级使用AD22 目录 1.添加层之后中间层无法布线 2.新增快捷方式CtrlW布线&#xff0c;不用点图标了 二、环境 AD22 三、正文 1.添加层之…

SpringBoot-RabbitMQ

RabbitMQ 是一个开源的消息中间件&#xff0c;它实现了 AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;协议&#xff0c;并提供了可靠的消息传递机制。 Spring Boot 中使用 RabbitMQ 实现异步消息的发送和接收。 使用 Spring Boot 提供的 AmqpTemplate 和 Rab…

Redis Part1

单体架构&#xff1a;一台Web服务器、一台数据库服务器。 1.了解NoSql 什么是Nosql&#xff1f; NoSQL&#xff0c;即Not-Only-SQL&#xff0c;意思就是我们干事情不能只用SQL&#xff0c;泛指非关系型的数据库&#xff01;NoSQL定位&#xff1a;作为关系型数据库的补充&am…

小米OPPO三星一加红魔全机型解锁BL详细教程合集-ROOT刷机必要操作

解锁BL一个熟悉又陌生的词汇&#xff0c;只要你刷机root过&#xff0c;你肯定都解锁BL成功过。我们简单的描述下BL是什么&#xff1f;BL全名bootloader&#xff0c;目前市面上全部机型&#xff0c;基本出厂全部BL处于锁定的状态锁定的BL机型&#xff0c;不支持刷入非官方固件或…

性能测试 —— Jmeter事务控制器

事务&#xff1a; 性能测试中&#xff0c;事务指的是从端到端&#xff0c;一个完整的操作过程&#xff0c;比如一次登录、一次 筛选条件查询&#xff0c;一次支付等&#xff1b;技术上讲&#xff1a;事务就是由1个或多个请求组成的 事务控制器 事务控制器类似简单控制器&…

广州口腔医院种植牙-广东省爱牙工程公益种牙,获湾区群众点赞

广州种植牙价格表-自2017年成立以来,广东省爱牙工程一直坚持以公益惠民为宗旨、公益种牙为服务方向,针对群众普遍存在的口腔健康问题,开展形式多样的公益性口腔医疗惠民活动。 广州种植牙费用表-日前,广东省爱牙工程“种植牙惠民行动”第二十季已正式启动。据广东省爱牙工程官方…

韩信点兵:求韩信一共有多少兵

任务描述 本关任务&#xff1a;求韩信一共有多少兵。 韩信有一队兵&#xff0c;他想知道有多少人&#xff0c;便让士兵排队报数。 按从 1 至5报数&#xff0c;最末一个士兵报的数为 1&#xff1b; 按从 1 至 6 报数&#xff0c;最末一个士兵报的数为 5&#xff1b; 按从 1 …

栈与队列--删除字符串中的所有相邻重复项

给出由小写字母组成的字符串 S&#xff0c;重复项删除操作会选择两个相邻且相同的字母&#xff0c;并删除它们。 在 S 上反复执行重复项删除操作&#xff0c;直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例&#xff1a; 输入&#x…

C/C++指针函数与函数指针

一、指针函数 指针函数&#xff1a;本质为一个函数&#xff0c;返回值为指针指针函数&#xff1a;如果一个函数的返回值是指针类型&#xff0c;则称为指针函数用指针作为函数的返回值的好处&#xff1a;可以从被调函数向主函数返回大量的数据&#xff0c;常用于返回结构体指针。…

基于ntchat的微信群聊同步机器人

微信群有500人上限的限制&#xff0c;建立多个群的话又有信息无法互通的不便&#xff0c;此机器人通过自动将消息转发到同一个同步组内的所有群&#xff0c;消除这一不便性&#xff0c;间接达成扩大群成员数的目的。 效果演示&#xff1a; 项目地址&#xff1a; https://gith…