1、集合和数组的区别?
1,数组声明了它容纳的元素类型,而集合不声明
2,数组的长度一旦确定了长度是固定的,而集合的长度是可变的
3,数组只能存储相同类型的对象,而集合可用存储不同类型的对象
4,集合只能存储对象,不能存储基本数据类型,但可用存储它对应的包装类
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器:迭代器是所有集合类的一种共性,就是把集合中的元素遍历一遍,
迭代器是通过集合的iterator()方法得到的,所以它是依赖于集合而存在的
增强for: 简化了for循环,对于遍历获取元素更加便利,内部原理是一个Iterator迭代器 ,所以也不能进行增删元素, 否则会抛出异常
区别是: for 循环只能用于有索引值的元素遍历,,而增强for对于遍历的方式都可以用,
3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
List接口下有ArrayList集合,LinkedList集合,
ArrayList集合底层是数组结构:
特点: 查询快(根据连续的索引值查找元素)
增删慢(增删元素会创建新的数组)
LinkedList集合底层是链表结构:
查询慢(未知具体地址,所以要从头开始查找元素)
增删快(直接修改指针地址值增删元素,不会创建新的数组) |