????????????????????HashMap???????????????Map??????????????????TreeMap?? ????????о??????????????HashMap?????±??????????TreeMap?????????????????????????????HashMap??????????????????????HashMap?????TreeMap???????????????????? ??????????????????
?????????signature??
????public class TreeMap<K??V>
????extends AbstractMap<K??V>
????implements NavigableMap<K??V>?? Cloneable?? java.io.Serializable
????????????????HashMap?????TreeMap????????????NavigableMap??????????????????TreeMap??HashMap??????
????HashMap??key????????TreeMap??key???????
???????NavigableMap
???????????NavigableMap?????
????public interface NavigableMap<K??V> extends SortedMap<K??V>
????????NavigableMap?????SortedMap?????SortedMap?????
????SortedMap
????public interface SortedMap<K??V> extends Map<K??V>
????SortedMap????????????????????Map??????????????????????Comparable???????keys???????natural ordering??????????????????SortedMap????????????Comparator???????? ?????????ü???????collection views????HashMap??????????entrySet??keySet??values????????????????iterate?????SortedMap???????????key????? ?????????1???Comparable??Comparator???????ο???????
????Comparable????????????????綨?????Student?????????????
????Comparator????????????????μ????????????????????????????????Student???age??????
????????SortedMap?е?key????????????Comparable??????????comparator?????????????????α??????k1.compareTo(k2)??comparator.compare(k1?? k2)??????key????????????????ClassCastException?????? ?????SortedMap??key????????????equals????????????????k1.compareTo(k2)??comparator.compare(k1?? k2)?true???k1.equals(k2)?????true?? ????????SortedMap??????????????NavigableMap???????? NavigableMap??JDK1.6?????????SortedMap???????????????Щ“????????”??navigation methods??????????????????????????????????Щ??????
????lowerEntry?????????б????Map.EntryС?????
????floorEntry?????????б????Map.EntryС?????????
????ceilingEntry?????????б????Map.Entry??????????
????higherEntry?????????б????Map.Entry??????
???????????design concept??
???????????Red–black tree??
????TreeMap???ú?????????????????????????????????????????????????????????????????Щ????
??????????????
?????????????????????binary search tree??BST???????????

??????????????
????????????????????????????????
?????????????С???????????????????????
?????????????????????????????????ж????????????????????????????????????????????????????????臨????log(n)???????????? ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????……??????????????
????n??????K????????????K??????Ч???????K??2???
????K ????????
?????????????????????????????????????????????
????????????????????????????????????????????????????????Σ????????????????????????????????????α???????
?????????????????θ??????????????????????
????n??????K?????????????????????????k*log(n/k)??
??????????????k??n???K??????????????????????????O(n)??????????????????????????????
????n????????k???????k*log(n/k)????С??
????k*log(n/k)???????????????????????ln(n)*k/ln(k)??ln(n)????????????????k/ln(k)???С??????????????????????????????????????????????????????
??????k??e???k/ln(k)?С???
?????????e????????2.718??????????????????????????????????????Nodejs??REPL?н???????????
????function foo(k) {return k/Math.log(k);}
????> foo(2)
????2.8853900817779268
????> foo(3)
????2.730717679880512
????> foo(4)
????2.8853900817779268
????> foo(5)
????3.1066746727980594