一、将TreeMap中指定元素排在集合前面
1. 比较器实现
/**
* TreeMap比较器
*
*/
public class MyComparator implements Comparator<String>{
private Map<String,Integer> bankCodeMap = new HashMap<String,Integer>();
private int tempWeight = 0;
public MyComparator(){
bankCodeMap.put("ICBC", 1);
bankCodeMap.put("CCB", 2);
bankCodeMap.put("ABC", 3);
}
@Override
public int compare(String o1, String o2) {
int weight1 = getWeight(o1);
int weight2 = getWeight(o2);
return weight1-weight2;
}
/**
* 获取权重
* @param key
* @return
*/
private int getWeight(String key){
Integer value = bankCodeMap.get(key);
if(value == null){
if(tempWeight == 0){
tempWeight = Collections.max(bankCodeMap.values()) + 1;
}else{
tempWeight = tempWeight + 1;
}
value = tempWeight;
bankCodeMap.put(key, value);
}
return value;
}
}
2. 测试代码
TreeMap<String,String> map = new TreeMap<String,String>(new MyComparator());
map.put("UOP", "STR1");
map.put("HP", "STR2");
map.put("ICBC", "STR3");
map.put("ABC", "STR4");
map.put("CCB", "STR5");
map.put("GDB", "STR6");
System.out.println(map);
相关推荐
关于java集合比较器的创建和使用 概述: 在java集合中,TreeSet集合和TreeMap集合底层数据结构都是自平衡二叉树,所以在这两个集合中添加元素的时候会实现自动排序,排序方式为中序排序(即左根右的方式进行排序,...
Java集合详解3:Iterator,fail-fast机制与比较器 Java集合详解4:HashMap和HashTable Java集合详解5:深入理解LinkedHashMap和LRU缓存 Java集合详解6:TreeMap和红黑树 Java集合详解7:HashSet,TreeSet与...
Go中各种数据结构和算法的实现。 数据结构 货柜 所有数据结构都通过以下方法实现容器接口: type Container interface { Empty () bool Size () int Clear () Values () [] interface {} } 容器是有序的还是...
Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射...
Map双边队列 1. 什么是Map? 1.1 Map双边队列的概念: Map是一种以键(key)值(value)对形式保存数据的机制。 1.2 Map双边队列的格式: interface Map { } 1.3 Map双边队列的两大实现...关于Comparator比较器的使用: pu
描述:实现跳过列表数据结构,将其性能与Java的TreeMap进行比较。 跳过列表是一种数据结构,它允许在元素的有序序列中进行快速搜索。 通过维护子序列的链接层次结构,可以快速搜索,每个子序列都跳过更少的元素。 ...
其中包括:数组列表(LinkedList,Arraylist)堆栈队列双端队列PriorityQueue HashMap HashSet TreeMap TreeSet String Lambda表达式,用于比较器实现待办事项列表:段树二元索引树联合查找特里树
11.4.3 实现类TreeMap286 11.4.4 实现类Properties287 11.5 Collections类288 11.6 泛型概述292 11.7 本章习题300 第12章 12.1 理解线程304 12.1.1 什么是多线程304 12.1.2 进程和线程的区别304 12.1.3 线程的创建和...
3.1.3 TreeMap和TreeSet 3.2 Map和List 3.2.1 Map的values()方法 3.2.2 Map和List的关系 3.3 ArrayList和LinkedList 3.3.1 Vector和ArrayList的区别 3.3.2 ArrayList和LinkedList的实现差异 3.3.3 ...
7.6.2 SortedMap接口和TreeMap实现类 276 7.6.3 WeakHashMap实现类 279 7.6.4 IdentityHashMap实现类 280 7.6.5 EnumMap实现类 281 7.7 HashSet和HashMap的性能选项 282 7.8 操作集合的工具类:Collections 283...
比较器与可比较 hashCode() 和 equals() 之间的契约 Java是按引用还是按值传递对象? 迭代与递归 ##3。 类和接口 什么是实例初始化器? 字段不能被覆盖? 继承与组合 如何使用 Java 枚举? 有多少种内部类? 什么是...
微服务架构优势 首先简单介绍了微服务(Microservices)的内涵及优势,微服务架构的本质,是用一些 功能比较明确、业务比较精练的服务去解决更大、更实际的问题。微服务架构将服务拆 分,分别采用相对独立的服务对各...
java为数据结构中的映射定义一个接口java.util.Map,有四个实现类HashMap Hashtable LinkedHashMap TreeMap用法和区别;对Map排序; 5字符串 使用String;判断一个字符串是否是合法的java标识符;使用StringBuffer;...
14.7.5 SortedMap接口与TreeMap类 305 14.7.6 映射的遍历 308 14.8 栈在Java中的实现 309 14.8.1 Stack类的使用 309 14.8.2 Deque接口的使用 310 14.8.3 利用栈计算数学表达式 311 14.9 集合元素的常用...
108 6.6 对象引用的使用 110 6.6.1 调用不存在的对象或成员变量 110 6.6.2 调用对象为null值的引用 111 6.6.3 对象引用间的比较 113 6.7 this 113 6.8 要活用JDK已有的类 114 6.8.1 Date类 114 6.8.2 Integer类 116 ...
比较额度这四个模块使用的是ECharts可视化图表ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日...
1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM .........................
1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM ........................