Java进阶之旅第三天

Java进阶之旅第三天

文章目录

  • Java进阶之旅第三天
    • TreeMap
      • 特点:
      • 题目
    • 使用TreeMap进行数据统计
      • 题目:

TreeMap

特点:

  • 1.TreeMap根TreeSet底层原理一样,都是红黑树结构
  • 2.由键决定特性: 不重复,无索引,可排序
  • 3.可排序: 对键进行牌序
  • 注意: 默认按照键的从小到大进行排序,也可以自己规定键的排序规则
  • 排序规则:
    • 1.实现Comparable接口,指定比较规则
    • 2.创建集合时传递Comparator比较对象,指定比较规则
    • 3.如果同时实现上述两个,则以第二个为准

题目

  • 键:整数id,值:字符串表示商品名称,要求: 按照id的升序排序,按照id的降序排序遍历集合元素
  • 代码
        TreeMap<Integer, String> tmap = new TreeMap<>(new Comparator<Integer>() {//指定排序规则,不指定默认降序           @Overridepublic int compare(Integer o1, Integer o2) {//o1: 表示要添加的元素//o2: 表示已经在红黑树中存在的元素//o1-o2 降序 o2-o1 升序return o2-o1;}});//添加元素tmap.put(11,"小");tmap.put(18,"小");tmap.put(19,"小");tmap.put(17,"小");//遍历元素Set<Map.Entry<Integer, String>> entries = tmap.entrySet();for (Map.Entry<Integer, String> entry : entries) {System.out.println(entry.getKey()+" = "+entry.getValue());}
  • 结果
19 = 小
18 = 小
17 = 小
11 = 小

使用TreeMap进行数据统计

题目:

  • 根据给出的一个字符串统计字符串中各个字符出现的次数,并且字符排序由小到大
  • 例如: “abcd” 结果: a(1)b(1)c(1)d(1)
  • 分析:
    • 第一时间想到的应该是计算器统计法,但是太慢了并且时间复杂度太高
    • 使用TreeMap将时间复杂度降低到O(n)
    • 思路: 集合中不存在该字符就添加字符初始值,存在就获取字符对应的值并且加1,然后放回集合当中,由于TreeMap具有排序功能,默认是从小到大
    • 代码:
        String s = "abaabcdfegcd";//创建集合TreeMap<Character, Integer> tmap = new TreeMap<>();//主体逻辑for (int i = 0; i < s.length(); i++) {char target = s.charAt(i);if(tmap.containsKey(target)){//存在int num = tmap.get(target);num++;tmap.put(target,num);}else{//不存在tmap.put(target,1);}}//遍历字符Set<Map.Entry<Character, Integer>> entries = tmap.entrySet();for (Map.Entry<Character, Integer> entry : entries) {System.out.print(entry.getKey()+"("+entry.getValue()+")");}System.out.println();
  • 结果
a(3)b(2)c(2)d(2)e(1)f(1)g(1)

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

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

相关文章

【备战蓝桥杯】今天给大家整点解压的~

【备战蓝桥杯】今天给大家整点解压的~ 蓝桥杯备赛 | 洛谷做题打卡day8 文章目录 【备战蓝桥杯】今天给大家整点解压的~ 蓝桥杯备赛 | 洛谷做题打卡day8[NOIP2017 普及组] 成绩题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提…

【C语言编程之旅 1】刷题篇-初识c语言

文章目录 第一题答案及解析 第二题答案及解析 第三题答案及解析 第四题答案及解析 第五题答案及解析 第六题答案及解析 第一题 答案及解析 C语言中内置类型包括&#xff1a; char //字符数据类型 short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精…

ArcGIS Pro 拓扑编辑和常见一些拓扑错误处理

7.4 拓扑编辑 拓扑编辑也叫共享编辑&#xff0c;多个数据修改时&#xff0c;一块修改&#xff0c;如使用数据&#xff1a;chp7\拓扑检查.gdb,数据集DS下JZX、JZD和DK&#xff0c;加载地图框中&#xff0c;在“地图”选项卡下选择“地图拓扑”或“ds_Topology(地理数据库)”&…

Oracle-java下载、开源/商业许可证(收费、免费说明)、版本发布日志

Oracle-java下载、开源/商业许可证&#xff08;收费、免费说明&#xff09;、版本发布日志 下载开源/商业许可证&#xff08;收费、免费说明&#xff09;java8版本发布日志以上是一般情况&#xff0c;具体的以官网发布信息为准 下载 下载地址&#xff1a;https://www.oracle.c…

google cloud storage批量文件下载

背景&#xff1a; 一些google cloud storage文件的下载是需要付费的&#xff0c;一些是不需要的&#xff0c;不需要的直接点击下方的下载按钮即可&#xff0c;但是常常存在大量的文件下载&#xff0c;挨个下载有点费时间而且占内存&#xff0c;所以我尝试了批量下载到HPC&…

前端面试题-webpack

1.webpack是什么&#xff1f; 模块打包工具&#xff0c;用于将前端资源&#xff0c;如JavaScript、css、图片等打包成可以在浏览器运行的静态资源。可以将多个模块打包成一个或多个bundle。 主要功能&#xff1a; 模块化&#xff1a;可以将多个模块打包成一个或多个bundle&…

day17 二叉树part04

110. 平衡二叉树 简单 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 class Solution {public boolean isBalanced(TreeNode root) {re…

(2023版)斯坦福CS231n学习笔记:DL与CV教程 (3) | 正则化与最优化

前言 &#x1f4da; 笔记专栏&#xff1a;斯坦福CS231N&#xff1a;面向视觉识别的卷积神经网络&#xff08;23&#xff09;&#x1f517; 课程链接&#xff1a;https://www.bilibili.com/video/BV1xV411R7i5&#x1f4bb; CS231n: 深度学习计算机视觉&#xff08;2017&#xf…

智能代码:生成式 AI 在软件开发中的革命性角色

想象一下&#xff0c;在智能手机革命性地改变了我们的生活之后&#xff0c;现在轮到了生成式 AI 在软件开发领域掀起风暴。你知道吗&#xff0c;如果代码能自己编写自己&#xff0c;这将是多么惊人的一步&#xff1f;这就好比我们现在能轻松地用手机应用管理日常生活一样&#…

【嘉立创EDA-PCB设计指南】1.PCB基本概念及原理图绘制

前言&#xff1a;本文详解PCB基本概念以及实现MCU最小系统原理图的绘制&#xff08;原理图包括MCU芯片GD32F103C8T6、外部晶振、输出端口、USB输入口、5v转3v3稳压输出、复位按键、唤醒按键、LED&#xff09;。为本专栏后面章节实现PCB绘制做准备。 最终绘制的原理图如下所示&…

代码随想录算法训练营第二十八天| 93.复原IP地址、78.子集 、90.子集II

代码随想录算法训练营第二十八天| 93.复原IP地址、78.子集 、90.子集II 题目 93.复原IP地址 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1…

2019年认证杯SPSSPRO杯数学建模B题(第二阶段)外星语词典全过程文档及程序

2019年认证杯SPSSPRO杯数学建模 基于统计和迭代匹配的未知语言文本片段提取模型 B题 外星语词典 原题再现&#xff1a; 我们发现了一种未知的语言&#xff0c;现只知道其文字是以 20 个字母构成的。我们已经获取了许多段由该语言写成的文本&#xff0c;但每段文本只是由字母…

注意!不清楚这些,2024上半年软考别轻易尝试!

看着周围的朋友们纷纷去考软考&#xff0c;很多人也跃跃欲试了吧。那我劝你&#xff0c;如果不清楚这些&#xff0c;不要轻易考2024年软考&#xff01; 01 软考介绍 软考是计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试的简称&#xff0c;由工信部、人社部领导…

面试经典150题(84-84.5)

leetcode 150道题 计划花两个月时候刷完&#xff0c;今天&#xff08;第四十二天&#xff09;完成了1道(84)150&#xff1a; 84.&#xff08;17. 电话号码的字母组合&#xff09;题目描述&#xff1a; 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合…

使用Go语言的HTTP客户端和服务器

使用Go语言进行HTTP客户端和服务器开发是一种高效且强大的方式。Go语言的标准库提供了对HTTP协议的全面支持&#xff0c;使得创建HTTP客户端和服务器变得简单。 首先&#xff0c;让我们来看一下如何创建一个简单的HTTP服务器。在Go中&#xff0c;可以使用net/http包来创建HTTP…

HNU-计算机网络-实验5(自选)-安全相关编程实验

计算机网络 课程综合实验安全相关编程实验&#xff08;RUST&#xff09; 计科210X 甘晴void 202108010XXX 【前言】 这个《课程综合实验》是21级开始新加的实验&#xff0c;之前都没有。具体的可以看实验指导书&#xff0c;是用的19级同学的毕设。我完成的这个实验需要一点点R…

left join NULL踩坑

1、背景 因为最近响应监管&#xff0c;做数据全面匿名化的需求。会在写入数据库时&#xff0c;把姓名身份证做MD5处理后&#xff0c;只保留32位的前30位&#xff0c;保证即使拿到处理后的数据&#xff0c;也无法复原&#xff0c;恢复到源数据。 相应的&#xff0c;大数据BDP …

java-方法-动动小手指给个一键三连吧❤️✨

文章目录 1.概念2.静态方法和非静态方法2.1静态方法2.2非静态方法 3 参数传递方式4.方法的重载5.命令行传参6.可变参数7.递归作业 1.概念 在面向对象编程中&#xff0c;方法&#xff08;Method&#xff09;是类或对象中用于执行特定任务的一段代码。方法可以访问和操作对象的属…

第十四讲_css媒体查询

css媒体查询 1. 媒体查询介绍2. 媒体类型3. 媒体特征3.1 常用的媒体特征 4. 逻辑运算符 1. 媒体查询介绍 CSS 媒体查询&#xff08;media query&#xff09;是响应式设计的关键组成部分&#xff0c;你可以根据各种设备特征和参数是否存在以及对应的值是否满足条件来应用不同的…