Java-数据结构-TreeMap
1.TreeMap介绍
TreeMap底层是树形(红黑树)结构,作为Map的一员,包含着key--value形式的元素,和HashMap最大的区别是丢进去的东西自动排序。要注意的是默认的是对Key排序,也可以重写Comparator对Value排序,很方便。
2.TreeMap常用方法
put(key,value) | 添加一对键值对 |
putAll(map) | 添加一个map的所有键值对 |
remove(key) | 删除对应的键值对 |
clear() | 删除所有元素 |
containsKey(key) | 判断是否含有某一键值 |
containsValue(value) | 判断是否含有某一value |
firstKey() | 返回第一个key |
get(key) | 取出指定key对应的值 |
lastKey() | 返回最后一个key |
replace(key,value) | 修改一对键值对 |
ceilingKey(key) | 返回map中键值不小于参数key的最小键值 |
entrySet() | 返回由原Map的键值对组成的Set |
size() | 返回map中包含的键值对的数量 |
remove(key) | 从map中删除对应的键值对 |
3.TreeMap实战
前k个高频元素
力扣
给你一个整数数组 nums
和一个整数 k
,请你返回其中出现频率前 k
高的元素。你可以按 任意顺序 返回答案。
输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2]
class Solution {public static int[] topKFrequent(int[] nums, int k) {if(nums == null || nums.length <2){return nums;}int[] temp = new int[k];TreeMap<Integer, Integer> map = new TreeMap<>();for(int i = 0; i < nums.length; i++){if(!map.containsKey(nums[i])){map.put(nums[i],1);}else{map.put(nums[i],map.get(nums[i])+1);}}List<Map.Entry<Integer, Integer>> entryArrayList = new ArrayList<>(map.entrySet());Collections.sort(entryArrayList, Comparator.comparing(Map.Entry::getValue));for(int i = 0; i < k;i++){temp[i] = entryArrayList.get(entryArrayList.size()-i-1).getKey();}return temp;}
}
Java-数据结构-TreeMap相关推荐
- Java集合—TreeMap底层原理
原文出自:http://cmsblogs.com/?p=1013.尊重作者的成果,转载请注明出处! 个人站点:http://cmsblogs.com TreeMap的实现是红黑树算法的实现,所以要了解 ...
- Java集合--TreeMap
转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3310928 第1部分 TreeMap介绍 TreeM ...
- 【Java数据结构】Map与Set、搜索树、哈希表
1.1 概念及场景 1.2 模型 二.Map 的使用 2.1.关于Map的说明 2.2.Map 的常用方法说明 2.3.TreeMap的使用案例 三.Set 的说明 3.1.常见方法说明 3.2.Tr ...
- 使用java数据结构编写代码
使用java数据结构编写代码 数组数据结构 数组的初始化 public static void main(String[] args) {int[] arrays = new int[5]; // 定 ...
- 【Java 数据结构】实现一个二叉搜索树
目录 1.认识二叉搜索树 2.实现一个二叉搜索树 2.1 成员变量 2.2 insert 方法 2.3 search 方法 2.4 remove 方法(重点) 3.二叉搜索树总结 1.认识二叉搜索树 ...
- Java数据结构及原理实现
程序设计主要是数据结构+算法,而数据结构在面向对象思维里是"容器"的意思,数据结构主要负责数据的添加,删除,修改,查找及对数据的其他操作.编程里面对着不同问题场景,选择哪种数据结构 ...
- Java——数据结构
Java--数据结构 一.链表(LinkedList) (1)实现对链表的添加 (2)实现对链表的删除 (3)常用方法: 二.数组列表类(ArrayList) 数组列表(ArrayList)的构造函数 ...
- java队列_如何彻底搞懂 Java 数据结构?CSDN 博文精选
作者 | 张振华.Jack 责编 | 郭芮 出品 | CSDN 博客 本文和大家一起来重温<Java数据结构>经典之作. Java数据结构 要理解Java数据结构,必须能清楚何为数据结构? ...
- Java 数据结构与算法系列之冒泡排序
一.前言 相信大部分同学都已经学过数据结构与算法这门课了,并且我们可能都会发现一个现象就是我们所学过的数据结构与算法类的书籍基本都是使用 C 语言来写的,好像没见过使用 Java 写的数据结构与算法. ...
- Java数据结构与算法——树(基本概念,很重要)
声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 有网友私信我,期待我的下一篇数据结构.非常荣幸文章被认可,也非常感谢你们的监督. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督 ...
最新文章
- CentOS单用户模式登录方法:
- hadoop multipleoutputs
- 上机考试系统 commons-fileupload 上传与下载 压缩为 zip 文件 删除文件夹下所有内容...
- python--列表与字典
- [剑指offer]面试题第[7]题[JAVA][斐波那契数列][递归]
- 实验一 命令解释程序编写
- 计算机专业英语介词短语举例,计算机专业英语英汉互译技巧.ppt
- java获取字符串实际编码_Java获取字符串编码方式
- aspx 请求不到后端_2021了你该知道的6个Node.js后端框架
- python flask文件下载 | 实用代码架构
- 明翰英语教学系列之雅思常见词汇与固定搭配篇V1.0(持续更新)
- Linux下的图片编辑软件
- 国外服务器 百度云,百度云加速如何配置网站海外加速
- tsx vue3 自定义指令
- 电脑笑脸蓝屏问题 也许你可以尝试一下这个
- 认识常见壳与程序的特征
- mac php 连接 mssql 2008,php5.3.x连接MSSQLserver2008
- 监控系统 Prometheus 的说明
- linux常用bash命令介绍
- 网络编程的5种IO模型