TreeMap的Comparator, 要慎用
来源:互联网 发布:eve ios软件 编辑:程序博客网 时间:2024/04/29 23:06
自己调试代码的时候发现TreeMap.get, TreeMap.remove都拿不到正确的值(返回null)。
后来发现,原因是TreeMap的实现,为了加速,使用了基于Comparator的查找:
final Entry<K,V> getEntry(Object key) { // Offload comparator-based version for sake of performance if (comparator != null) return getEntryUsingComparator(key); if (key == null) throw new NullPointerException();Comparable<? super K> k = (Comparable<? super K>) key; Entry<K,V> p = root; while (p != null) { int cmp = k.compareTo(p.key); if (cmp < 0) p = p.left; else if (cmp > 0) p = p.right; else return p; } return null; }
如果comparator有问题的话自然get, remove也会有问题了。
- TreeMap的Comparator, 要慎用
- java TreeMap 及 Comparator
- TreeMap使用自定义Comparator
- TreeMap Comparator 排序
- Java中的TreeMap、Comparable、Comparator
- TreeMap Comparator按照首字母排序
- TreeMap利用Comparator接口排序
- TreeMap Comparator 根据vlaue 值排序案例
- 要慎用的五个“简历杀手”句子
- jmap的几个操作要慎用
- Model,gcc的__sync_synchronize要慎用。
- jmap的几个操作要慎用
- js 的Object.assign(),要慎用
- JDK学习---深入理解Comparator、TreeSet、TreeMap为什么可以排序
- 慎用Solaris 的CacheFS
- 慎用Enum的ToString
- 关于memset的慎用
- 慎用Hibernate的saveOrUpdate
- 彻底弄懂CSS盒子模式(DIV布局快速入门)
- 正则表达式的一些学习
- 那时,我们正年轻
- ruby udp broadcast example
- itext 单位
- TreeMap的Comparator, 要慎用
- touch事件
- sql简单语句
- hdu 1219 AC Me
- centos 傻瓜式安装/升级GCC 4.7
- Android底部菜单栏 仿微博效果
- 《进行有效决策的艺术》读书笔记
- Log4j输出包/类的日志文件
- 求1000以内的阶乘 组合数学基础练习例子(二)