A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2019-6-20 17:57  /  2170 人查看  /  40 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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集合的底层是链表结构,特点是查询慢(元素的具体地址值不确定,需要从头开始查询),增删快(只需要改变地址值得指向,无需创建数组)。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马