Android_Question icon indicating copy to clipboard operation
Android_Question copied to clipboard

ArrayList 和LinketList区别?hashmap的实现原理?hashmap与hashtable的区别?

Open whatshappen opened this issue 5 years ago • 3 comments

ArrayList与LinketList差别arraylist与linketlist差别.png ArrayList基于数组实现,所以get,set操作效率较高; LinketList基于链表实现(双向链表),所以add,remove操作效率较高;

如何实现高效率的查询和插入结构? 二叉树或者散列表 HashMap实现原理: hashmap是由数组+链表结构现实的。获取到key的hashcode,然后对数组长度取余,找到对应的数组位置index,然后在对应的链表中判断是否有当前key,从而进行查询/添加/替换等操作。 HashMap与HashTable区别hashmap与hashtable区别.png

whatshappen avatar Apr 02 '19 16:04 whatshappen

求别在学了,老子跟不上了~

q33780565 avatar Apr 03 '19 00:04 q33780565

1.8jdk的HashMap优化为红黑树,又会考你什么时候红黑树会退化为链表...doge~

zsmjhtn avatar Apr 15 '19 01:04 zsmjhtn

1.8jdk的HashMap优化为红黑树,又会考你什么时候红黑树会退化为链表...doge~

当链表长度大于8的时候,会转换成红黑树,否则就是链表结构

whatshappen avatar Apr 19 '19 01:04 whatshappen