下面是一个简单的示例,演示如何使用Comparator对TreeMap按key进行升序排序: importjava.util.Comparator;importjava.util.TreeMap;publicclassTreeMapSortByKeyExample{publicstaticvoidmain(String[]args){TreeMap<Integer,String>treeMap=newTreeMap<>(newComparator<Integer>(){@Overridepublicintcompare(Integero1,Integer...
我们可以使用无参构造函数创建一个空的TreeMap对象,或者在创建时传入自定义的比较器来进行排序。 // 创建一个空的TreeMap对象,使用自然排序TreeMap<Integer,String>treeMap=newTreeMap<>();// 创建一个空的TreeMap对象,使用自定义比较器TreeMap<Integer,String>treeMap=newTreeMap<>(newMyComparator()); 1. 2...
import java.util.Map; import java.util.TreeMap; public class Main { public static void main(String[] args) { // 创建一个TreeMap,并指定按照key的自然顺序排序 Map<Integer, String> map = new TreeMap<>(); // 添加数据 map.put(3, "C"); map.put(1, "A"); map.put(2, "B"); //...
String key = iter.next(); System.out.println(key +":"+map.get(key)); } } } 运行结果如下: d:aaaaa c:bbbbb b:ccccc a:ddddd 三.value排序 上面例子是对根据TreeMap的key值来进行排序的,但是有时我们需要根据TreeMap的value来进行排序。对value排序我们就需要借助于Collections的sort(List<T> list...
2- TreeMap的使用场景 考虑如下场景: 需要基于排序的统计功能: 由于TreeMap是基于红黑树的实现的排序Map,对于增删改查以及统计的时间复杂度都控制在O(logn)的级别上,相对于HashMap和LikedHashMap的统计操作的(最大的key,最小的key,大于某一个key的所有Entry等等)时间复杂度O(n)具有较高时间效率。
map1.put(7, 1); map1.put(5,2); System.out.println("map1="+map1); } } TreeMap按照value进行排序 TreeMap底层是根据红黑树的数据结构构建的,默认是根据key的自然排序来组织(比如integer的大小,String的字典排序)。所以,TreeMap只能根据key来排序,是不能根据value来排序的(否则key来排序根本就不能形成...
1、按Key排序 jdk内置的java.util包的TreeMap<K,V>可以实现对Key的排序,通过构造方法中传入比较器Comparator即可实现,这里Comparator类型输入的泛型参数是K的超类或本身,即TreeMap(Comparator<? super K> comparator) 相关代码 publicclassMapSortDemo{publicstaticvoidmain(String[]args){Map<String,String>map=newTree...
TreeMap底层由红黑树实现,按照Key的自然顺序升序或者实现Comprator接口进行自定义排序。且TreeMap的排序特性只作用在key上。如果需要value也跟着排序就需要使用一些别的手段。 排序特性 按key排序 默认按key升序排列 package com.springboot.study.demo1;importjava.util.*;publicclassTest{publicstaticvoidmain(String[]...
//大于等于这个key的键值 ceilingKey(k key); //大于这个键值的元素 higherEntry //大于这个key的键 higherKey //返回集合中的第一个元素 firstEntry //返回最后一个 lastEntry 那么如果我们想自己去定义排序呢。 建立对时候可以定义 TreeMap<Integer, String> treemap = new TreeMap<>(new Comparator<Integer>(...