1、集合和数组的区别?
答:数组是一种用于存储多个相同类型数据的存储模型。集合是一种存储空间可变的存储模型。
区别:
a.集合大小不固定,存储空间可变。数组是大小固定的,一旦创建无法扩容。
b.集合提供了更多的成员方法,可以对数据进行操作。
c.集合存放的类型只有一种引用数据类型,数组的存放的类型可以是基本数据类型,也可以是引用数据类型。
d.创建集合时,如果泛型不确定,可以使用默认类型Object,数组在定义的时候一定要声明自己的类型。
e.数组是java语言中内置的数据类型,是线性排列的,执行效率或者类型检查相对于集合会快。
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:迭代器是定义访问和遍历元素的接口,集合专用的遍历方式。
增强for循环是迭代器的简化形式,内部原理就是一个迭代器,可以对集合和数组的遍历。
区别:
a.for循环有索引值,增强for循环不需要索引值。
b.for循环可以利用索引值进行增删修改,增强for循环不能。
3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点?
答:List接口下的集合主要有:ArrayList、LinkedList。
ArrayList集合的底层是数组结构,特点是查询快(索引值连续),增删慢(需要创建数组)。
LinkedList集合的底层是链表结构,特点是查询慢(元素的具体地址值不确定,需要从头开始查询),增删快(只需要改变地址值得指向,无需创建数组)。
|