Java?械?HashMap???
???????????? ???????[ 2014/7/21 10:49:25 ] ??????????????? java
??????Java????????校?HashSet??HashMap???????????????????ArrayList??LinkedList????????????????????????????????????????Vector??HashTable??????????????????????????????JDK???????????????????????????????????JDK?????????????Collections?????????????????????
?????????????
????1.??????HashMap??
??????Thinking In Java???????????????????????????????key-value??demo?????????????????????????????????????????????????????娲�???????????????械????????????????????????????椋�????????????????????械???????????????????????????????Java??????equals????==??????????????????????
????2.HashMap????????????
????Hash?????????????????????????????????????????????????????????????????????????????????????
????3.Java?械?Hash??
?????????Java???????????????????????????????(????C??????????????????椋�??些??????2??????????????????????椤�??????????????????????????魏??????????Java?校?ArrayList??????????Objec???????????????HashMap????????????????????????????????????????????????Entry?????????????key??value??hash(????hashCode)??next(????????????????)?????HashSet???HashMap????????????????????Entry??value???????key?????????HashSet?????????
????public HashSet() {
????map = new HashMap<E??Object>();
????}
??????????????????????????????HashSet?????????????????HashMap?????
????HashMap???
?????????????????hash????????????????????3???????????????????length?????椋�??????小??length??????????????锌?????????????????????????????16???????写???????(?????????HashMap???????)??????????????????????hashCode()?????????????????hashCode????????HashMap????????????????????????械?位??????????? i??
????int hash = hash(key.hashCode());
????int i = indexFor(hash?? table.length);
???????????????hashCode???????2???????????????i?????i?????????械?位???????????????????indexFor(hash??table.length)?????????
????static int indexFor(int h?? int length) {
????return h & (length-1);
????}
????????????????????h??(length-1)??位????????????????????length??????????????table???????????????????????????????????????????????小??????小????????????????????慰????????????????些????????????????????table?械?位???????????????????????????hashCode()?????????????????????????????????hashCode???????????????????????????????????????????????????????????????????????位????????????????????娲�?????hashCode?????????????????HashMap??size??????????1????????2????????????????????????小?HashMap?械?size???????????????????????????size()??????????map??????
????public int size() {
????return size;
????}
????????????????????????hash???????????????????????HashMap????????锌????????hashmap????????????table????capacity????????????????????threshold??????????????????????????????????
????public HashMap() {
????this.loadFactor = DEFAULT_LOAD_FACTOR;
????threshold = (int)(DEFAULT_INITIAL_CAPACITY * DEFAULT_LOAD_FACTOR);
????table = new Entry[DEFAULT_INITIAL_CAPACITY];
????init();
????}
??????

???路???
??????????????????
2023/3/23 14:23:39???写?貌??????????
2023/3/22 16:17:39????????????????????些??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???路???????路
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11