-
Java连载90-Sorted、Map讲解
一、
1.让SortedSet集合做到排序还有另一种方式:java.util.Comparator;
2.单独编写一个比较器
package com.bjpowernode.java_learning; import java.util.*; public class D90_1_SortedSet { public static void main(String[] args) { //创建TreeSet集合的时候提供一个比较器 SortedSet products = new TreeSet(new ProductComparator()); Product90 p1 = new Product90(3.4); Product90 p2 = new Product90(4.0); Product90 p3 = new Product90(3.0); Product90 p4 = new Product90(2.0); Product90 p5 = new Product90(5.0); //添加元素 products.add(p1); products.add(p2); products.add(p3); products.add(p4); products.add(p5); //遍历 Iterator i = products.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } } class Product90 { double price; Product90(double price){ this.price = price; } public String toString() { return price+""; } } class ProductComparator implements Comparator{ public int compare(Object o1,Object o2) { double price1 = ((Product90)o1).price; double price2 = ((Product90)o2).price; if(price1==price2) { return 0; }else if (price1<price2) { return -1; }else { return 1; } } }
总结:使用这种单独实现比较器的方法,因为这样符合高内聚低耦合的原则,代码复用性更强。
二、Comparable和Comparator的区别
见两次连载的代码,推荐使用Comparator
三、Map
package com.bjpowernode.java_learning; import java.util.*; public class D90_2_MapUsualMethod { public static void main(String[] args) { /** * 关于Map集合中的常用方法 */ //void clear();清空Map //boolean containsKey(Object key);判断Map中是否包含这样的key //boolean containsValue(Object value);判断Map中是否包含这样的value //Set<Map.Entry<K,V>> entrySet();返回此映射中包含的映射关系的Set视图 //Object get(Object key);通过key获取value; //Object put(Object key,Object value);向集合中添加键值对 //boolean isEmpty(); 判断该集合是否为空 //Object remove(Object key);通过key将键值对删除 //int size();获取Map中键值对的个数 //Set keySet();获取Map中所有的键值对 //Collection values();获取Map集合中所有的value //1.创建Map集合 Map persons = new HashMap();//HashMap的默认初始化容量为16,默认加载因子时0.75 //2.存储键值对 persons.put("10000","JACK"); persons.put("10001","ZHANGXINLEI"); persons.put("10002","YAOKUN"); persons.put("10003","ZHAOZEKUN"); persons.put("10004","LIDUO"); persons.put("10005","DIAOBI"); //3.判读键值对的个数 //Map中的key是无序不可重复的,和HashSet相同 System.out.println(persons.size()); //4.判断集合中是否包含这样的key System.out.println(persons.containsKey("10000")); //5.判断集合中是否包含这样的value System.out.println(persons.containsValue("ZHANGXINLEI")); } }
四、源码:
D90_1_SortedSet.java
D90_2_MapUsualMethod.java
https://github.com/ruigege66/Java/blob/master/D90_1_SortedSet.java
https://github.com/ruigege66/Java/blob/master/D90_2_MapUsualMethod.java
出 处:https://www.cnblogs.com/ruigege0000/p/12381269.html
最新更新
带有参数的装饰器
类装饰器
django中的auth模块与admin后台管理
python的日期处理
字符串常用方法
基本数据类型概述
python-map()函数基本用法
python带你实现任意下载AcFun视频数据~
bbs项目之注册功能
变量的定义和使用
三大常用数据库事务详解之三:事务运行
三大常用关系型数据库事务详解之二:基
三大关系型数据库事务详解之一:基本概
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
VB.NET中如何快速访问注册表
ASP.NET中图象处理过程详解
Vue(1)Vue安装与使用
JavaScript 语言入门
js将一段字符串的首字母转成大写
纯原生html编写的h5视频播放器
H5仿原生app短信验证码vue2.0组件附源码地
TypeScript(4)接口
TypeScript(3)基础类型
TypeScript(2)WebStorm自动编译TypeScript配置