1、集合和数组的区别?
答:集合是长度可变的容器,创建时不需要指定长度;集合只能存引用数据类型,不可以存基本数据类型,如果要
存放基本数据类型,只能通过其包装类存放;集合通过size()方法获取长度
数组长度不可变,创建的时候必须给定数组的长度;数组可以存基本数据类型;数组通过length属性获取长度
也可以存引用数据类型
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:迭代器是集合中的专用遍历方式,通过集合的iterator()方法得到迭代器。通过迭代器的hasNext()方法判断是否
有下一个元素,Next()方法获取元素,使用迭代器遍历集合的时候,不能进行对集合做增删操作,否则会发生
并发修改异常ConcurrentModificationException
增强for是用来遍历集合和数组的简便方式。底层原理是迭代器,使用增强for循环遍历时不能进行对集合做增删操作
定义格式:for(元素数据类型 变量名 : 数组/集合对象名) { ? ?循环体; }
增强for和普通for循环的区别:增强for循环是没有索引值的,只需知道元素的数据类型及数组/集合变量名即可;
普通for循环需要通过获取集合/数组的索引值遍历。
3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
答:List接口下有ArrayList和LinkedList实现类。ArrayList底层时数组,数组中有索引值,可以通过索引值直接获取对应
的元素,ArrayList的特点是:查询快,增删慢
LinkedList类底层是链表,链表中的结点由值和指向下一节点地址的指针组成的,可以通过修改指针指向的地址值进行
增加结点和删除结点,LinkedList的特点是:增删快,查询慢 |