为了方便理解和记忆,先看看下图
1、ArrayList和LinkList的区别?
- ArrayList是数组结构,LinkList是链表结构。
- ArrayList查询速度快,增删改速度慢。
- LinkList刚好和ArrayList相反,LinkList查询速度慢,增删改速度快。
2、Collection接口的remove()方法和Iterator接口的remove()方法区别?
- Collection接口的remove()必须通过下标或者集合内的元素去删除,iterator接口remove()必须配合next()方法一起使用。
3、Array与ArrayList有什么区别?
- Array是数组,ArrayList是数组集合。
- Array需要指定大小,ArrayList不需要指定大小(ArrayList自动扩容大小,默认大小为10,当你添加第11个时,ArrayList就会以101.5=15去扩容,此时大小为15,当添加第16个时,ArrayList就会以151.5=22去扩容,以此内推扩容)。
4、怎样将一个数组转成List,有什么方法?
- 数组转list,可以使用Arrays.asList(数组)
- List转数组,使用list.toArray()
5、HashSet、TreeSet、LinkedHashSet区别?
- HashSet速度快
- TreeSet有排序功能
- LinkedHashSet先存先取(类似与花名册,来的早的名字在前面,晚的在后面)
6、HashMap、TreeMap、LinkedHashMap区别?
- HashMap速度快
- TreeMap有排序功能
- LinkedHashMap先存先取(类似与花名册,来的早的名字在前面,晚的在后面)
7、HashMap和HashSet区别
- HashMap:调用put()的方法往map里面填值、实现map接口、以键值对存储、比HashSet存储快、使用key计算hashcode
- HashSet:调用add()的方法往Set里面填值、实现set接口、存储对象、比HashMap存储慢、使用成员对象计算hashcode
8、HashMap的实现原理
HashMap是以键值对存储,键不能重复,值可以重复,通过put(object,object)方法存,通过get(object)取值
9、List、Set、Map之间的区别
- List和Set都继承Collection,但是Map不是Collection的子接口。
- List:可以有重复值、可以有多个null值、有序容器,插入的顺序和输出的顺序一样
- Set:不能有重复值、只能有一个null值、无序容器
- Map:键不能重复,值可以重复、键只能有一个null,值可以有多个重复值、无序容器