黑马程序员技术交流社区

标题: 【厦门校区JavaEE就业8期-每日总结】集合 [打印本页]

作者: 厦门校区    时间: 2019-6-20 17:57
标题: 【厦门校区JavaEE就业8期-每日总结】集合
今天我们开始了集合的学习,请根据自己的理解回答下面问题:
1、集合和数组的区别?
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
作者: 郭付民    时间: 2019-6-20 18:33
1、集合和数组的区别?
答:数组是一种用于存储多个相同类型数据的存储模型。集合是一种存储空间可变的存储模型。
   1.集合大小不固定,存储空间可变。数组是大小固定的,一旦创建无法扩容。
   2.集合提供了更多的成员方法,可以对数据进行操作。
   3.集合存放的类型只有一种引用数据类型,数组的存放的类型可以是基本数据类型,也可以是引用数据类型。
   4.创建集合时,如果泛型不确定,可以使用默认类型Object,数组在定义的时候一定要声明自己的类型。
   5.数组是java语言中内置的数据类型,是线性排列的,执行效率或者类型检查相对于集合会快。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:迭代器是定义访问和遍历元素的接口,集合专用的遍历方式。
       增强for循环是迭代器的简化形式,内部原理就是一个迭代器,可以对集合和数组的遍历。
区别:   
      1.for循环有索引值,增强for循环不需要索引值。
      2.for循环可以可以利用索引值进行增删修改,增强for循环不能。

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点?
答:List接口下的集合主要有:ArrayList、LinkedList。
    ArrayList集合的底层是数组结构,特点是查询快(索引值连续),增删慢(需要创建数组)。
    LinkedList集合的底层是链表结构,特点是查询慢(元素的具体地址值不确定,需要从头开始查询),增删快(只需要改变地址值得指向,无需创建数组)。

作者: 朱铭恺    时间: 2019-6-20 19:13
本帖最后由 朱铭恺 于 2019-6-20 19:14 编辑

1、集合和数组的区别?

- 集合为长度可变的容器;数组运作中长度不可变
- 集合长度调用方法;数组长度调用属性
- 集合只能存储引用数据类型;数组可存储基本数据类型和引用数据类型
- 集合元素不一定可重复且不一定有序,要看具体类;数组元素可重复且有序


2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?

迭代器:集合的专属遍历方式,需通过集合的iterator()方法得到,所以是依托于集合存在的
增强for和普通for循环的区别:
- 增强for可理解为普通for循环的改进版,更加简便高效;
- 增强for底层调用迭代器遍历,不可增删元素,否则会出现并发异常;普通for则可以增删元素
- 增强for循环不可遍历字符串,普通for循环则可以。
-增强for中无法对索引进行直接操作,普通for则可以



3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点

List接口下有ArrayList和LinkedList,
ArrayList底层为数组结构,特点:查询快、增删慢
LinkedList底层为链表结构,特点:查询慢,增删快
作者: 王猛虎    时间: 2019-6-20 19:25
1.数组可用于存储基本数据类型和引用数据类型,集合只能存储引用数据类型
  数组长度不可变,集合长度可变

2.迭代器是collection接口的一个方法,用于遍历集合
增强for是迭代器的精简版,底层是迭代器实现,用于集合遍历
增强for和普通for循环的区别:
a.增强for底层是迭代器实现,在循环内不能改变集合长度,否则会抛并发修改异常,普通for循环可以
b.for循环可以使用索引,增强for不行

3.List下有:ArrayList、LinkedList
ArrayList:底层数组实现,查询快,增删慢
LinkedList:底层链表实现,查询慢,增删快
作者: 辛全旺    时间: 2019-6-20 19:38

今天我们开始了集合的学习,请根据自己的理解回答下面问题:

1、集合和数组的区别?
        答:集合长度可变,数组长度不可变。集合储存引用数据类型,数组储存基本数据类型(和字符串)。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
        答:迭代器:Iterator的实现类对象,通过集合的iterator()方法得到迭代器,迭代器可以调用Iterator接口的hasNext方法和next方法来遍历集合。增强for底层是迭代器,是迭代器遍历集合的简便写法,不需要也没有索引,遍历完集合元素后自动结束。for循环通过索引来遍历集合,可以获得每个元素的索引,不能遍历set实现类集合。

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
        答:List的常用实现类集合有:ArrayList集合和LinkedList集合。ArrayList集合底层是数组结构,特点是查询快、增删慢。LinkedList集合底层是链表结构,特点是查询慢、增删快。

作者: 邱昊翔    时间: 2019-6-20 19:59
1、集合和数组的区别?
答:1.数组声明了它容纳的元素的类型,而集合不声明。
       2.数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。
       3.数组的存放的类型只能是一种(基本类型/引用类型),集合存放的类型可以不是一种(不加泛型时添加的类型是Object)。
       4.数组是java语言中内置的数据类型,是线性排列的,执行效率或者类型检查都是最快的。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:Iterator(迭代器)接口提供了很多对集合元素进行迭代的方法。每一个集合类都包括了可以返回迭代器实例的迭代方法。
      增强for循环内部是使用的Iterator来遍历的,只能遍历数组和实现了Iterable接口的集合。
      增强for和普通for循环的区别:
      普通for循环的优点是变量可控,操作起来方便直观,缺点是较为繁琐。
      增强for循环优点是写法简便,无需获得数组、集合长度,也无需根据索引来访问元素,缺点是不能在循环里动态的删除元素和获取元素下标。

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
答:List接口下的集合有:ArrayList、LinkedList。
       ArrayList集合的底层是数组结构,特点是查询快(因为索引值连续),增删慢(因为需要创建数组)。
       LinkedList集合的底层是链表结构,特点是查询慢(因为元素的具体地址值不确定,需要从头开始查询),增删快(因
       为只需要改变地址值得指向就可实现增删)。
作者: 李保佳    时间: 2019-6-20 20:16
本帖最后由 李保佳 于 2019-6-20 21:00 编辑

1、集合和数组的区别?
1.集合数组的对比
1.长度
数组的长度是固定的
集合的长度是可变的
2.存储的数据类型
数组可以存储基本数据类型,也可以存储引用数据类型
集合只能存储应用数据类型,如果想存储数,只能使用引用数据的包装类·
3.创建对象,
数组创建对象必须指定长度
集合创建对象不指定长度
4打印变量
数组直接打印数组名,得到的是堆内存的地址值
集合的直接答应名称,得到的是集合的内容

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器,集合的专用遍历方式 ,
增强for的底层是迭代器
1.for循环有索引值,增强for循环不需要索引值。
2.for循环可以可以利用索引值进行增删修改,增强for循环不能增删修改。
3.增强for不能拥有字符串数组
3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
ArrayList 集合,实现类
底层是数组结构,特点查询快,增删慢
Linkedlist集合,实现类
底层是链表结构,特点查询慢,增删快
作者: 许雅丽    时间: 2019-6-20 20:20
1、集合和数组的区别?

集合:装数组的容器,且长度可变

- 初始化长度是10(集合初始化长度就是一个长度为10的数组)
- 当集合中元素数量<=10,不需要扩容,直接往集合中添加元素
  若>10,集合会扩容
- 只能存引用数据类型,
  若想存数,只能用基本数据类型的包装类
- 创建长度不指定长度,直接打印变量名得到集合内容
- 集合获取长度 数组名.size



数组:也是容器,

- 但是长度在运行期间不可改变,不能往数组中添加元素,
- 固定长度的容器,在存储或删除数据会特别麻烦
- 若数据数量发生变化,每次都要重新创造新的数组,非常消耗资源
- 创建对象必须指定长度,直接打印数组名得到地址值
- 数组获取长度 数组名.length

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?

        迭代器是用于遍历集合的,在创建出来的时候是在所有元素的最前面,在索引值0的前面一位

        增强for是迭代器的一种简化形式,底层就是迭代器,所以使用增强for循环也不能在遍历过程中改变集合长度

        增强for比普通for较为简便,快捷。普通for可以增删,增强for不能增删

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点

     List接口下有ArrayList集合(底层为数组结构,特点是查询快增删慢)
      LinkedList集合(底层是链表结构,查询慢,增删快)

作者: 邹楷能    时间: 2019-6-20 20:24
1、集合和数组的区别?
答:数组的长度不能发生改变,创建的时候需要指定数组长度,数组可以存储引用类型也可以储存基本数据类型;而集合的长度可以在运行过程中变化,创建不需要指定长度,集合中只能储存引用类型数据。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:迭代器是集合中用于遍历集合中元素的方式。增强for是一种对迭代器的简化,也能遍历集合中元素,其底层原理就是迭代器。
增强for底层是迭代器,而普通for循环就是一种循环方式,普通for循环不能遍历没有索引值的集合,而增强for可以。

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
答:List接口下常用的集合有ArrayList和LinkedList。
ArrayList底层使用数组结构,特点是查询快,增删慢。
LinkedList底层使用链表结构,特点是查询慢,增删快。
作者: 自然之小友    时间: 2019-6-20 20:46
1、集合和数组的区别?

答:
(1)集合是一个长度可变的容器;数组的长度不可改变。
(2)集合可以存储引用类型,如果集合要存储基本类型需要用到包装类;数组可以存储基本类型和引用类型。
(3)集合长度调用方法;数组长度调用属性。
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?

答:迭代器是集合特有的遍历方式。
(1)增强for是简化版的遍历方法,它的底层是迭代器的封装。
(2)增强for可以遍历数组和集合但不能遍历字符串,普通for可以。
(3)在增强for中不能进行增删操作,普通for可以通过索引进行操作。
(4)普通for相比增强for,代码冗长,增加程序员的负担。

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点

答:List接口下主要有ArrayList集合、LinkedList集合。
(1)ArrayList集合底层为数组结构,特点:查询快,增删慢。
(2)LinkedList集合底层为链表结构,特点:查询慢,增删快。
作者: 孙健健    时间: 2019-6-20 20:46

今天我们开始了集合的学习,请根据自己的理解回答下面问题:

1、集合和数组的区别?

答:集合存储的数据容量可以改变,数组不可以
        数组可以存储基本数据类型和引用数据类型
        集合只能存储引用数据类型,或者基本类型的包装类

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器:集合的专用遍历方式
增强for:是对迭代器的一种简化形式,底层就是迭代器,可以对集合和数组进行遍历,快速获取到容器中每一个元素
普通for:普通for不可以遍历没有索引的数组,增强for可以,这就是区别,
3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
常用的有ArrayList,LinkedList集合
不常用的有AbstractList, AbstractSequentialList,  AttributeList, CopyOnWriteArrayList, RoleList, RoleUnresolvedList, Stack, Vector

Arraylist底层是数组,特点是查询快,增删慢
LinkedList底层是链表,特点是增删快,查询慢

作者: 邱昊翔    时间: 2019-6-20 20:55
1、集合和数组的区别?
答:1.数组声明了它容纳的元素的类型,而集合不声明。
       2.数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。
       3.数组的存放的类型只能是一种(基本类型/引用类型),集合存放的类型可以不是一种(不加泛型时添加的类型是Object)。
       4.数组是java语言中内置的数据类型,是线性排列的,执行效率或者类型检查都是最快的。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:Iterator(迭代器)接口提供了很多对集合元素进行迭代的方法。每一个集合类都包括了可以返回迭代器实例的迭代方法。
      增强for循环内部是使用的Iterator来遍历的,只能遍历数组和实现了Iterable接口的集合。
      增强for和普通for循环的区别:
      普通for循环的优点是变量可控,操作起来方便直观,缺点是较为繁琐。
      增强for循环优点是写法简便,无需获得数组、集合长度,也无需根据索引来访问元素,缺点是不能在循环里动态的删除元素和获取元素下标。

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
答:List接口下的集合有:ArrayList、LinkedList。
       ArrayList集合的底层是数组结构,特点是查询快(因为索引值连续),增删慢(因为需要创建数组)。
       LinkedList集合的底层是链表结构,特点是查询慢(因为元素的具体地址值不确定,需要从头开始查询),增删快(因
       为只需要改变地址值得指向就可实现增删)。
作者: 王海华    时间: 2019-6-20 20:56

今天我们开始了集合的学习,请根据自己的理解回答下面问题:

1、集合和数组的区别?
答:数组是静态的,数组有固定的长度,一旦创建了就无法改变。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供成员方法,能满足更多的需求。数组的存放的类型只能是一种基本类型或引用类型,集合存放的类型可以不是一种。数组查找速度快,集合删减速度快

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:1.迭代器对集合元素进行迭代一种方法。迭代器可以在迭代过程中删除底层集合的元素,但是不可以直接调用集合的remove删除,可以通过迭代器的remove()方法删除集合元素
2.增强for:把一个集合或者数组中的元素循环赋值给一个相同类型的元素进行遍历,不能再遍历过程中添加删除元素,如果添加删除会数据溢出
3.增强for和普通for循环的区:一个有索引,一个每索引


3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
答:1.ArraysList  LinkedList    2. ArraysList的底层元素是数组结构, LinkedList的底层元素是链表。3.ArraysList查询快、查询慢、增删快增删慢
作者: 饶小保    时间: 2019-6-20 20:57
1、集合和数组的区别?
①长度:
集合的长度可变,数组的长度不可变。
数组的长度表达是数组名.length   
集合的长度表达是集合名.size()
②存储的元素
集合存储并没有声明数据类型,存储的是引用数据类型。
数组存储必须先先声明数据类型,并且存储的都是该数据类型。
③执行效率
数组的执行速度比集合快的多。


2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
①迭代器是一种遍历集合的专用方式,迭代器是通过集合的iterator()方法得到的,是依赖于集合而存在的。
②增强for的也是一种遍历数据的方式,底层实现是迭代器
格式是:for(元素数据类型 变量名 :数组/集合对象名){循环体}
③区别是增强for不需要索引就可以遍历,普通for需要索引值才能遍历。
增强for不可以增删元素,普通for可以进行增删。


3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
List接口下面有ArrayList和LinkedList
①ArrayList使用的是数组数据结构,特点是查询快,增删慢
②LinkedList使用的是链表数据结构,特点是增删快,查询慢
作者: 许振顺    时间: 2019-6-20 21:05

1、集合和数组的区别?
   1,数组声明了它容纳的元素类型,而集合不声明
   2,数组的长度一旦确定了长度是固定的,而集合的长度是可变的
   3,数组只能存储相同类型的对象,而集合可用存储不同类型的对象
   4,集合只能存储对象,不能存储基本数据类型,但可用存储它对应的包装类

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
   迭代器:迭代器是所有集合类的一种共性,就是把集合中的元素遍历一遍,
迭代器是通过集合的iterator()方法得到的,所以它是依赖于集合而存在的
   增强for: 简化了for循环,对于遍历获取元素更加便利,内部原理是一个Iterator迭代器 ,所以也不能进行增删元素, 否则会抛出异常
   区别是: for 循环只能用于有索引值的元素遍历,,而增强for对于遍历的方式都可以用,
3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
   List接口下有ArrayList集合,LinkedList集合,  
   ArrayList集合底层是数组结构:
   特点:  查询快(根据连续的索引值查找元素)                                
   增删慢(增删元素会创建新的数组)
   LinkedList集合底层是链表结构:
   查询慢(未知具体地址,所以要从头开始查找元素)                    
   增删快(直接修改指针地址值增删元素,不会创建新的数组)
作者: 黎先帆    时间: 2019-6-20 21:25
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集合的底层是链表结构,特点是查询慢(元素的具体地址值不确定,需要从头开始查询),增删快(只需要改变地址值得指向,无需创建数组)。

作者: 刘鸿昌    时间: 2019-6-20 21:25
1、集合和数组的区别?
集合包含数组,集合中的数据是可变的,数组在运行中元素是不可变的

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是集合的专用遍历方式
增强for就是底层对迭代器的增强
区别:
普通for需要索引进行遍历,增强for不要索引
增强for代码更简洁,适用范围更广

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
目前所学:
有ArrayList、LinkedList.....
ArrayList集合 底层是数组结构实现,查询快、增删慢
LinkedList集合 底层是链表结构实现,查询慢、增删快
作者: 吴汕汕    时间: 2019-6-20 21:31
1、集合和数组的区别?

  集合存储的数据长度可变,数组长度不可变;

  集合存储引用数据类型,数组可存储基本数据类型,也可存储引用数据类型;

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
   
   迭代器是一个接口,集合特有的;

   增强for循环没索引值,不能增删修改;普通for循环有索引值,可进行增删修改;
  
   
3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点?

   List接口下主要集合有:ArrayList,LinkedList;
   
   ArrayList集合底层是数组结构实现,查询快,增删慢;
   
   LinkedList集合底层是链表结构实现,查询慢,增删快;
作者: 张遵荣    时间: 2019-6-20 21:31

今天我们开始了集合的学习,请根据自己的理解回答下面问题:

1、集合和数组的区别?
答:集合不能存储基本数据类型,数组可以存储基本数据类型和引用数据类型。集合的长度是可以变动的
,而数组的长度是固定的,且需要在定义时给出。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:迭代器是集合通用的一个遍历访问集合元素的工具,其是一个接口。
增强for即是foreach循环,是对迭代器遍历的一种简化模式。foreach循环可以遍历数组和集合,
遍历集合时不能进行增删操作(底层就是迭代器)
for循环与foreach循环不同,其不能对遍历没有索引的类别的集合。

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
答:List接口下有linkedList和ArrayList两个实现子类集合,前者的底层是链表,后者的底层实现是数组。
链表的结构是以节点组成的,通过指针,来逐个链接,所以链表没有索引,方便头尾操作,因为是通过指针进行
访问,所以对其增删操作高效快速,但进行查询则较数组慢。
数组的结构是一块连续的内存块,地址连续,通过索引访问,每次对数组进行增删操作,都会产生一个新
的数组,占用性能资源,其查询快,增删慢。

作者: 陈杰1    时间: 2019-6-20 21:31
1、集合和数组的区别?
数组的长度是固定,集合的长度是可变的。
数组中存储的是同一类型的元素,集合中存储的都是对象

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器:iterator。提供了很多对集合元素进行迭代的方法,每一个集合都包括了
               可以返回迭代器实例的迭代方法,他是集合的专用遍历方式。
增强for:就是对迭代器的简化,可以对集合和数组进行遍历,快速的获取到容器中的每一个元素
区别:遍历集合所有元素的话用增强for会更简洁

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
(1)ArrayList  底层的实现方法是数组形式。特点:查找快,添加删除慢
(2)LinkedList   底层的实现方法是通过循环匹配进行查找的  特点:查找慢,添加删除快
作者: 许俊杰    时间: 2019-6-20 21:33
1、集合和数组的区别?
    数组的长度不可变,集合的长度可以变

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
    迭代器,集合的专用遍历方式,是通过集合的iterator()方法得到的,它是依赖于集合而存在的
    增强for循环,简化数组和集合的遍历,实现Iterable接口的类,其内部原理是一个Iterator迭代器
    增强for循环与普通for循环的区别:增强for循环遍历数组和集合时比普通for循环简单,但增强for循环不能对数组和集合遍历的过程进行增删操作,普通for循环可以。

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
    List接口下有ArrayList集合和LinkedList集合。
    ArrayList集合:ArrayList集合的底层是数组,是栈数据结构,特点是增删慢、查询快。
    LinkedList集合:LinkedList集合的底层是队列,是链表数据结构,特点时增删快、查询慢。

作者: 何凯    时间: 2019-6-20 21:35
1、集合和数组的区别?

(1)存储数据类型的区别 集合:只能存储引用数据类型要存基本数据类型需要基本数据类型的包装类
                      数组:数组则可以存储基本和引用数据类型

(2)定义长度的区别     集合:定义时不需要指定长度,运行时可以增删
                      数组:定义时必须要给定长度,运行时不能增删

(3)体系               集合:集合是一个大家庭 体系庞大 具体的实现类底层有的是数组 有的是链表结构
                      数组: 数组就是一种基本的数据结构

                     
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?

(1)        迭代器是一个接口,集合实现类如ArrayList类中有它的内部类实现类 调用ArrayList对象中的iterator方法会返回一个
           Iterator的实现对象,具体功能是不需要集合索引就可以遍历集合但是功能有限

(2)        增强for底层就是迭代器,JDK提供的一种省略写法
       
(3)        增强for遍历集合不需要索引值就可以遍历 而普通for需要一个索引来返回索引位置的元素
           增强for不能循环中不能增删元素,而普通for可以增删


3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点

(1)        List接口下有常用的集合有 ArrayList 和LinkedList 等等

(2)        ArrayList 底层是数组结构,LinkedList底层是链表结构

(3)        ArrayList 因为底层是数组 所以它 查询快 增删慢
        LinedList 底层是链表结构 所以它 增删快 查询慢

作者: zx_1997    时间: 2019-6-20 21:42
1、集合和数组的区别?
集合可以在程序运行时改变长度,可以添加或是删除元素,集合可以保存不同数据类型的元素
数组在程序执行时无法改变数组长度,数组只能存储相同类型的元素。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器Iterator接口的实现类是一种可以将集合元素返回的一种方法,增强for的底层原理是迭代器 for(数据类型 变量名 :数组或者集合){循环体}
增强for循环内部是使用的Iterator来遍历的。优点是写法简便,无需获得数组、集合长度,也无需根据索引来访问元素。缺点是不能在循环里动态的删除元素和获取元素下标。


3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
list接口下有两个集合的实现类,分别是ArrayList集合 与LinkedList集合。
ArrayList使用的是数组数据结构:特点是增删慢,查询快。
LinkedList使用的是链表数据结构:特点是增删快,查询慢。
作者: 郭伟杰-    时间: 2019-6-20 21:44
1、集合和数组的区别?
答:集合是:特点提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变。
    而数组是:存储空间与数据容量固定,不可变的存储模型。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:迭代器:是集合的专用遍历方式
    增强for循环:在for循环的基础上,对迭代器的一种简化形式,底层就是迭代器。
    区别:当循环体使用索引时,使用普通for,当不使用索引时,使用增强for。

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
答:接口下有ArrayList(实现类)和LinkedList(实现类)
    两者都继承了List的有索引,可以存储重复元素,元素存取有序的特点。但是他们的区别在
    ArrayList(实现类):底层是数组结构,查询快增删慢
    LinkedList(实现类):底层是链表结构,查询慢,增删快
作者: 陈伟锋    时间: 2019-6-20 21:45
1、集合和数组的区别?
集合是长度可变的容器,只能存储引用数据类型
数组是长度不可变得容器,可以存储基本数据类型和引用数据类型

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是依赖于集合而存在的,专门用于遍历集合元素的方式
增强for循环简化数组和Collection集合的遍历,它实现Iterable接口的类允许其对象成为增强型for语句的目标,其内部原理是一个Iterator迭代器
增强for和普通for循环的区别:增强for循环书写比普通for循环简单,但是增强for循环遍历集合元素时,不能对集合元素进行增删,而普通for可以

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
List接口下Arraylist和Linkedlist有两个常用的集合
Arraylist集合的底层数据结构是数组实现,存在"查询快,增删慢"的特点
Linkedlist集合的底层数据结构是链表实现,存在"查询慢,增删快"的特点
作者: 林锦长    时间: 2019-6-20 21:51
今天我们开始了集合的学习,请根据自己的理解回答下面问题:

1、集合和数组的区别?
集合:(1)存储空间可变,存储内容可变的存储模型,
          (2)集合长度可变,创建时不需要指定长度
          (3)集合的长度获取是通过方法进行访问,方法后面有带( )
          (4)集合只能存储引用数据类型
数组:(1)存储空间固定,存储内容可变的存储模型
          (2)数组长度不可变,创建时指定长度
          (3)数组的长度是通过属性进行访问,方法后面有带( ),属性则没有
          (4)数组可以存储引用数据类型,也可以存储基本数据类型


2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器:集合专用的遍历方式;
增强for:是普通for的升级,内部原理是一个迭代器;可以对集合进行遍历,简化数组
普通for:带有索引值的遍历方式;


3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
List接口下有很多集合,最常用的两个集合是ArrayList和LinkedList等等,
ArrayList:底层的数据结构是数组;
特点:查询快(索引值是连续的,只要查询索引值就可以获得该数组的元素),
          增删慢(每次增删都会生成新的数组)
LinkedList:底层的数据结构是链表;
特点:查询慢(索引值是随机的,查询时需要从第一个元素开始查询,直至查询到该元素),
          增删快(每次增删的时候只要将元素的地址值进行拼接就可以,不会生成新的链表)

作者: 江健    时间: 2019-6-20 21:57
1.集合长度可变,数组长度一设置就不可变。
集合只能存储引用数据类型,数组既可以存储引用数据类型,还可以存储基本数据类型。
2.迭代器用于集合遍历,是通过集合的iterator()方法得到的,它是依赖于集合而存在的。
   增加for循环跟for循环相似,格式如下:
for(元素数据类型 变量名 : 数组/集合对象名) {
    循环体;
}
普通for循环依赖集合索引遍历,增强for循环底层由迭代器实现,简化了代码书写。
3.目前学的只要有2个。
ArrayList集合:底层数组实现,查找快,增删慢。
LinkedList集合:底层链表实现,查找慢,增删快。
查了一下API,发现还有好几个集合,Vector等等。
作者: 林雅彬    时间: 2019-6-20 22:02
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的特点是:增删快,查询慢
作者: xiaojianming    时间: 2019-6-20 22:30
1、集合和数组的区别?
数组:用于存储多个相同类型数据的存储模型,存储的数据容量不能发生改变
集合:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器:集合的专用遍历方式
增强for:简化数组和Collection集合的遍历
区别:增强for循环代码简洁,但不便于对遍历的元素进行复杂的操作
          普通for代码比较繁琐,但方便于对遍历的元素进行复杂的操作

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
List接口分为:
1.ArrayList集合:底层是数组结构        特点:查询快,增删慢
2.LinkedList集合:底层是链表结构        特点:查询慢,增删快

作者: 林振达    时间: 2019-6-21 20:28
1、集合和数组的区别?
集合存储引用数据类型,数组储存基本数据类型和引用数据类型。
数组的长度是固定的,集合的长度是可变的。
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是集合中用于遍历集合元素的方式。增强for优点就是简化迭代器,缺点是不能访问索引和增删。
3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
list接口下有ArrayList、LinkedList
ArrayList底层为数组结构,特点:查询快,增删慢。
LinkedList底层为链表结构,特点:查询慢,增删快。
作者: 张遵荣    时间: 2019-6-21 20:46

今天我们继续了集合的学习,请根据自己的理解回答下面问题:

1.Set接口下的集合是如何保证无序不可重复的
答:Set集合通过add方法进行添加元素,其add()方法内部重写继承的Object超类中的hashCode()方法,是哈希值的
生成,加入了元素内容的影响,可以一定程度地根据其哈希值,就进行一些内容的判断。
在实际的哈希表中,其通过预先判断,哈希值与哈希表横向的数组长度的模于值,判断是否“同槽”,非同槽的元素,此时
即已可以判定他们元素的内容一定不想同,存入。
而哈希值判定 同槽的元素,再进一步的对同一槽内的元素(纵向,列)进行逐个equals判定。非相等的才存入。相等地舍弃。
由此实现了Set集合的元素不可重复特性。

2.我们为什么要重写HashCode( )和equals()方法?
答:在判定元素内容是否相等的步骤阶段中,重写equals方法,是为了实现,调用equals时,比较的时对象的内容,而非超类
原版的比较地址值。重写hashCode()方法,是为了在判定过程中,已健壮性来提高判断过程的效率,使用哈希值来预先一步判断
“不同槽的元素内容不重复”,可以直接存入。

3.数据在存入Set集合的时候,是先判断HashCode()还是先判断equals(),为什么?
答:先判断HashCode(),健壮性的考虑,先排除可以排除的情况,如短路效应,不必再继续判断已经可以确定的情况

4.Comparable和Comparator两个接口的区别,哪种接口使用的多,为什么?
答:Comparable使用时,是在类的定义时进行 实现该接口,,在类中实现其成员方法compareTo(),这种方案,在对象实例化时
已经对排序的正反向等进行了确定,不能再测试类中更改,耦合性高。它是默认进行排序的。
Comparator,使用是在测试类中,通过匿名内部类的方式,调用的时候,实时决定哪种排序的模式,是正序还是反序。使用更加灵活。

5.什么是泛型?使用泛型有什么好处?
答:在定义类、接口、方法时,指定的未知的数据类型
使用泛型,1,将异常从运行期变到了编译起;2,避免了强制转换类型的麻烦 ; 3 ,扩展了参数的范围,优化了需要多次重载的场景。

作者: 林振达    时间: 2019-6-22 21:02
1、集合和数组的区别?
(1).长度:集合长度可变,数组不可变
(2).数据类型:集合存储引用数据类型,数组存储基本数据类型加引用数据类型。
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器就是集合遍历数组的一种方式,增强for底层就是迭代器 。增强for就是普通for循环改进版,更加简洁高效。
3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
List下面有ArrayList和LinkedList
ArrayList底层是数组结构主要查询快,增删慢。
LinkedList底层是链条结构主要增删快,查询慢。
作者: 朱铭恺    时间: 2019-6-22 21:22
本帖最后由 朱铭恺 于 2019-6-22 21:23 编辑

错删。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2