文章目录
- 前言
- 一、ArrayList和LinkedList的区别
- 二、HashSet的实现原理?
- 三、List接口和Set接口的区别
- 四、hashmap底层实现
- 五、HashTable与HashMap的区别
- 六、线程不安全体现
- 七、想要线程安全的HashMap怎么办?
- 八、put操作步骤
- 九、Map的put方法的是怎么实现的?
- 十、Map如何遍历
- 十一、ConcurrentHashMap 是如何保证线程安全的?
- 十二、ConcurrentHashMap 的扩容机制是怎样的?
- 十三、ConcurrentHashMap 的 get() 方法是否需要加锁?
- 十四、ConcurrentHashMap 与 Hashtable 有什么区别?
- 十五、解决哈希冲突的四种方式
- 十六、Java集合的快速失败机制 “fail-fast”?
前言
Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。
Map是Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都属于集合类的一部分。Map包含了key-value对。Map不能包含重复的key,但是可以包含相同的value。
Iterator,所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含以下三种方法: 1.hasNext()是否还有下一个元素。 2.next()返回下一个元素。 3.remove()删除当前元素。
List
有索引,有序可重复。ArrayList与Vector底层是数组,查询快增删慢。LinkedList底层是双向链表,查询慢增删快。ArrayList,LinkedList都是线程不安全,Vector线程安全。
List遍历
①<