使用比较器对Treemap按照key进行排序
来源:互联网 发布:知乎周刊 plus 下载 编辑:程序博客网 时间:2024/05/13 20:10
使用比较器对Treemap按照key进行排序
一.理论准备
Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。 HashMap的值是没有顺序的,它是按照key的HashCode来实现的,对于这个无序的HashMap我们要怎么来实现排序呢?参照TreeMap的value排序。 Map.Entry返回Collections视图 key排序 TreeMap默认是升序的,如果我们需要改变排序方式,则需要使用比较器:Comparator。Comparator可以对集合对象或者数组进行排序的比较器接口,实现该接口的public compare(T o1,To2)方法即可实现排序,如下:
方式一
public class MapSortDemo { public static void main(String[] args) { Map<String, String> map = new TreeMap<String, String>(); map.put("KFC", "kfc"); map.put("WNBA", "wnba"); map.put("NBA", "nba"); map.put("CBA", "cba"); Map<String, String> resultMap = sortMapByKey(map); //按Key进行排序 for (Map.Entry<String, String> entry : resultMap.entrySet()) { System.out.println(entry.getKey() + " " + entry.getValue()); } } /** * 使用 Map按key进行排序 * @param map * @return */ public static Map<String, String> sortMapByKey(Map<String, String> map) { if (map == null || map.isEmpty()) { return null; } Map<String, String> sortMap = new TreeMap<String, String>( new MapKeyComparator()); sortMap.putAll(map); return sortMap; }}
比较器类
class MapKeyComparator implements Comparator<String>{ @Override public int compare(String str1, String str2) { return str1.compareTo(str2); }}
方式二:
public class TreeMapTest { public static void main(String[] args) { Map<String, String> map = new TreeMap<String, String>( new Comparator<String>() { public int compare(String obj1, String obj2) { // 降序排序 return obj2.compareTo(obj1); } }); map.put("b", "ccccc"); map.put("d", "aaaaa"); map.put("c", "bbbbb"); map.put("a", "ddddd"); Set<String> keySet = map.keySet(); Iterator<String> iter = keySet.iterator(); while (iter.hasNext()) { String key = iter.next(); System.out.println(key + ":" + map.get(key)); } }} 运行结果如下:d:aaaaac:bbbbbb:ccccca:ddddd
阅读全文
0 0
- 使用比较器对Treemap按照key进行排序
- 使用比较器对Treemap按照value进行排序
- TreeMap按照key排序
- TreeMap按照key排序
- TreeMap按照key排序
- TreeMap按照key排序
- TreeMap按照key排序
- 对TreeMap按照value进行排序
- 使用pinyin4j将TreeMap按照key的汉字拼音排序
- TreeMap按照value进行排序
- TreeMap按照value进行排序
- TreeMap按照value进行排序
- 关于使用TreeMap按照value进行排序的解决方案
- SortedMap TreeMap 使用Comparator排序器 对key(为对象)排序
- TreeMap集合如何按照Value进行排序
- Java<TreeMap按key排序与按照value排序>
- HashMap与TreeMap按照key和value排序
- java中如何使用TreeMap进行键值对排序
- hdu 3401 单调队列优化dp
- target-action
- android中RecyclerView的简单使用(二)——分割线
- Yii学习笔记1-介绍和详细运行过程
- Caffe在Windows上的搭建
- 使用比较器对Treemap按照key进行排序
- Kotlin 学习资源
- ERROR 1045 (28000):Access denied for user 'root'@'localhost' (using password: NO) Mac解决方案
- zxing二维码生成扫描,识别二维码图片,长按识别二维码调用方便简洁
- 第七届蓝桥杯决赛 C语言B组 题解 第五题_广场舞
- 搭建JEESZ分布式架构2--CentOs下安装Tomcat7(环境准备)
- PAT甲级1011
- 设计模式 状态模式 策略模式 观察者模式 命令模式 中介者模式
- LDD3源码分析之字符设备驱动程序