JAVA集合以及面试题
1,集合的框架体系图
2,java集合可分为Collection和Map两种体系
- 2.1 Collection接口:包括set和list
- Set:元素是无序的、不可重复的集合。
- List:元素是有序的、可以重复
2.2 Map
- 具有映射关系“key-vlue”的集合
3,首先我们来讲解List接口
- List接口的实现类常用的有:ArrayList、LinkedList和Vector(古老的集合JDK1.0就有了)记住它的特点:是有序,允许重复
常用方几个常用的就可以了,记不住就翻AIP就好,常见的有:
- add(int index,Object obj) 按索引插入元素
- remove(int index )按索引删除元素
- set(int index ,Object ojb)按索引修改元素
- get(int index )按索引查看元素
4,我们来谈谈List的实现类
- 4.1ArrayList实现类:底层是一个可变的数组结构的,
- 4.2Vector实现类:底层也是和ArrayList一样的都是可变的数组结构
面试题来了:Vector and ArrayList的区别?
- Vector:线程同步的,但是效率低
- ArrayList:线程不同步,但是效率高(开发中较多使用)
- 4.3LinkedList实现类;底层是链表结构的
面试来了:LinkedList and ArrayList的区别?
- ArrayList不同的是底层是一个数组结构的,空间是联系的,还有不适合做增删改更新操作的,适合做查询操作。
- LinkedList底层是链表结构的,空间上是不联系的而是分散的,适合做增删改更新操作,不擅长做查询操作
- 5,Set集合的特点,是无序的,不按特定的方式排序,只是简单的加入集合,set的集合也不能包含重复的对象或元素。
- 5.1 Set接口常用实现类有:HashSet类和TreeSet类
5.2HashSet实现类
- 特点;底层是哈希表结构,无序、不能有相同的元素,可以使用null元素它不保证set的迭代顺序,特别是它不保证改顺序的恒久不变。
5.3TreeSet实现类
- 特点:底层是 二叉树结构,可以实现对元素的自然排序(真正的排序)、不允许重复
6,Map集合
- map接口提供了将key映射到值的对象,注意:map里存的键值对,是不可以重复的,每个key最多能映射到一个值。
- Map接口常用的实现类有;HashMap和TreeMap,开发中也是较多使用HashMap实现类的,HashMap类实现的Map集合添加和删除映射关系效率更高,