集合框架篇

1.Iterable接口和Iterator区别(java.lang.Iterable java.util.Iterator )
1.1 Iterator是迭代器类,而Iterable是接口。
1.2 实现Iterable接口的集合类必须提供一个Iterator()的方法,该方法的返回值为Iterator

2.Collection接口的remove()方法和Iterator接口的remove()方法区别
2.1在性能方面来讲由于Collection的remove()方法必须找出要删除的项由于找到该项的方法为单链表查询,效率低.Iterator的remove()方法结合next()使用.所以Iterator接口的remove()方法效率更高
2.2在容错方面来讲在使用增强for循环时Collection的remove会出现报错,因为集合中对象的个数会改变但是Iterator内部对象个数不变。而在使用Iterator遍历时不会报错因为Iterator内部对象个数和原来对象的个数会一致.

3.List、Set、Map的区别
3.1:首先List和Set的父类都是Collection,但是Map不是Collection的子接口
3.2:List集合中允许出现重复的元素,Set不允许出现重复的元素(Set可以用来祛重),Map的键必须是唯一的但是他的值可以重复
3.3:List是一个有序的容器而Set和Map是无序容器

4.ArrayList和LinkedList区别
4.1首先ArrayList和LinkedList都是List接口的实现类
4.2ArrayList查询速度快.LinkedList一般用于Session数据的增删改

5.HashSet、TreeSet、LinkedHashSet区别
5.1都是Set的实现类
5.2HashSet速度最快没有明显顺序保存元素
5.3TreeSet按照Hash码比较的结果排序
5.4LinkedHashSet按照添加顺序保存对象

6.HashMap、TreeMap、LinkedHashMap区别
6.1都是Map的实现类
6.2HashMap速度最快没有明显顺序保存元素
6.3TreeMap按照Hash码比较的结果排序
6.4LinkedHashMap按照添加顺序保存对象且保留了HashMap的查询速度

7.Array和ArrayList区别
7.1Array是java数组。ArrayList是动态数组简称集合
7.2ArrayList是Array复杂版
7.3Array只能存储相同类型的数据ArrayList可以存储不同数据类型的数据
7.4Array长度固定ArrayList长度可变且必须为2的倍数
7.5数组转List用Arrays,asList(数组)
7.6集合转数组list.toArray();

猜你喜欢

转载自blog.csdn.net/weixin_41441515/article/details/88421740