文章目录
- 一、Collection相关
- 二、HashSet相关
- 三、HashMap相关
-
- 3.说说List,Set,Map三者的区别?
- 3.HashMap与HashTable的区别?
- 3.HashMap和HashSet的区别
- 3.比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同
- 3.ConcurrentHashMap和Hashtable的区别?
- 3.ConcurrentHashMap线程安全的底层具体实现
- 3.HashMap 默认的初始化长度是多少?
- 3.谈谈对HashMap 构造方法中初始容量、加载因子的理解
- 3.HashMap底层原理:
- 3.HashMap如何添加一个元素
- 3.HashMap扩容机制:
- 3.为何HashMap的数组长度一定是2的次幂?
- 3.HashMap在Java7和Java8中的实现有什么不同?
- 3.为什么在JDK1.8中进行对HashMap优化的时候,把链表转化为红黑树的阈值是8,而不是7或者不是20呢?
- 3.哈希表如何解决Hash冲突?
- 3.为什么HashMap具备下述特点:键-值(key-value)都允许为空、线程不安全、不保证有序、存储位置随时间变化
- 3.为什么 HashMap 中 String、Integer 这样的包装类适合作为 key 键
- 3.HashMap 中的 key若 Object类型, 则需实现哪些方法?
- 3.HashMap1.7是如何形成死循环的(头插法导致的)?
- 四、LinkedHashSet相关
- 五、hashcode
- 六、ArrayList
- 七、LinkedList相关
- 八、其它
一、Collection相关
1.数组和集合的比较
注意,我们现在说的数组可不是ArrayList,而且new double[10]
的那个数组
数组的问题:
1)长度开始时必须指定,而且一旦指定,不能更改
2)保存的必须为同一类型的元素
3)使用数组进行增加或者删除元素的示意代码-比较麻烦
比如你一开始创建了一个大小为3的int数组new Int[3],当你需要扩容的时候你必须new Int[4]然后使用for循环把原先数组的数据拷贝过去。
所以数组的问题就是长度必须指定而且一旦指定就不能修改。而且保存的数据必须是同一类型的元素。
所以我们要使用集合,集合有哪些好处呢?