小霸王e1故障代码(小霸王E1)
小霸王e1故障代码(小霸王E1)
前沿拓展:
TreeMap 类是基于红黑树的实现,提供了一种按排序顺序存储键值对的有效方法。
特征:TreeMap 包含基于键的值。它实现了 NavigableMap 接口并扩展了 AbstractMap 类。TreeMap 仅包含唯一元素。TreeMap 不能有一个空键,但可以有多个空值。TreeMap 是非同步的,线程不安全。TreeMap 的键是排序的,默认升序。TreeMap 底层实现是红黑树,红黑树是一种自平衡二叉搜索树。搜索、获取、放置和删除,需要的时间为 O(log n)。TreeMap 类声明public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.SerializableTreeMap 默认排序TreeMap 是按照键值排序的,默认是升序。
Map<Integer, String> map = new TreeMap<>();map.put(2, "second");map.put(1, "first");map.put(3, "third");for (Map.Entry<Integer, String> entry : map.entrySet()) { System.out.println(entry.getKey());}输出:123自定义排序一、自定义排序,可以使用Comparator 类中的方法:
Map<Integer, String> map = new TreeMap<>(Comparator.reverseOrder());map.put(2, "second");map.put(1, "first");map.put(3, "third");for (Map.Entry<Integer, String> entry : map.entrySet()) { System.out.println(entry.getKey());}输出:321二、使用自定义函数:
Map<Integer, String> map = new TreeMap<>((e1, e2) -> Math.abs(e1) - Math.abs(e2));map.put(-2, "second");map.put(1, "first");map.put(3, "third");for (Map.Entry<Integer, String> entry : map.entrySet()) { System.out.println(entry.getKey());}输出:1-23如何选择使用 Map1、如果需要排序,那么选择使用 TreeMap。
2、如果需要元素按照 插入顺序 来保证有序的,或者需要实现LRU(要想知道如何使用LinkedHashMap 实现 LRU, 请看《活用LinkedHashMap特性实现LRU》),那么使用 LinkedHashMap。
3、如果无特别需要,使用 HashMap 即可。