当前位置: 首页 > news >正文

Treemap的使用

一、TreeMap的遍历

1.通过treemap的keySet()方法得到键的set集合,通过键访问值

private static void sort1() {
	TreeMap<String, String> treeMap = new TreeMap<String, String>();
	treeMap.put("1", "str1");
	treeMap.put("2", "str2");
	Set<String> keySet = treeMap.keySet();
	for (String string : keySet) {
		System.out.println(treeMap.get(string));
	}
}
2.通过treeMap.values()得到值的集合,然后对值,直接遍历输出

private static void sort2() {
	TreeMap<String, String> treeMap = new TreeMap<String, String>();
	treeMap.put("1", "str1");
	treeMap.put("2", "str2");
	Collection<String> values = treeMap.values();
	for (String value : values) {
		System.out.println(value);
	}
}

3.通过treeMap.entrySet()得到包含的映射关系的 Set 视图
private static void sort3() {
	TreeMap<String, String> treeMap = new TreeMap<String, String>();
	treeMap.put("1", "str1");
	treeMap.put("2", "str2");
	Set<Entry<String, String>> keySet = treeMap.entrySet();
	for (Entry<String, String> entry : keySet) {
		System.out.println(treeMap.get(entry.getKey()));
	}
}
以上得到的结果均如下:

str1
str2

二、TreeMap排序

 TreeMap中,如果键是基本数据类型或者String类,treemap会按照默认的方

式排序,其中基本数据类型会按照ASCII码表排序,String类会按照字典序排序。

但是,如果其中的键是自定义类型,TreeMap则需要自定义排序,主要分两种

排序方法

1)自然排序: class—>实现Comparable,实现compareTo()方法

2)定制排序:TreeSet<>(new Comparator<Person>() {},重写其中的public int compare()方法

具体的方法使用方法见之前的blog






相关文章:

  • 数组根据index拆分和查询下标
  • include指令和include动作的区别
  • sql-主键即自增长的设置及语法实现
  • android中的样式主题和国际化
  • sql-go的使用
  • sql 获取新插入的id值的三种方法
  • 关于WCF SessionId的说明
  • idea中的jsp依赖
  • html5页面中拨打电话的方式
  • Cron表达式
  • 参数修饰符ref,out,params的区别
  • filter的简单介绍
  • 【转】深入理解java异常处理机制
  • 永久激活(破解) IntelliJ IDEA 2018(2018年10月更新)
  • 浏览器关闭后,Session就销毁了吗?
  • 230. Kth Smallest Element in a BST
  • docker容器内的网络抓包
  • eclipse的离线汉化
  • Elasticsearch 参考指南(升级前重新索引)
  • Java 23种设计模式 之单例模式 7种实现方式
  • JAVA_NIO系列——Channel和Buffer详解
  • mongo索引构建
  • Odoo domain写法及运用
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • spring cloud gateway 源码解析(4)跨域问题处理
  • 半理解系列--Promise的进化史
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 动态规划入门(以爬楼梯为例)
  • 讲清楚之javascript作用域
  • 前端知识点整理(待续)
  • 区块链分支循环
  • 微信公众号开发小记——5.python微信红包
  • 与 ConTeXt MkIV 官方文档的接驳
  • 带你开发类似Pokemon Go的AR游戏
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ###项目技术发展史
  • #Z2294. 打印树的直径
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (剑指Offer)面试题34:丑数
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)linux 命令大全
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)程序员技术练级攻略
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .Net 4.0并行库实用性演练
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .Net7 环境安装配置
  • .NET正则基础之——正则委托