黑马程序员技术交流社区

标题: 【厦门JavaEE就业2期-每日总结】Collection、泛型 [打印本页]

作者: 厦门校区    时间: 2018-6-22 10:58
标题: 【厦门JavaEE就业2期-每日总结】Collection、泛型
今天我们进一步学习了集合和泛型,请根据自己的理解回答下面问题

1、集合和数组的区别?

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

3.什么是泛型?使用泛型有什么好处?
作者: 刘宵    时间: 2018-6-22 11:13
1、集合和数组的区别?

数组的长度不可变,而集合的长度是可变化的,可以根据需要来自动扩充长度。另外集合只能存放引用类型,而数组则不受限制。

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

迭代器是Collection的一个实现的接口,可以用来遍历集合元素,增强for拿到的是集合中的对象,而普通的for是根据i的变化来根据索引拿到集合中的对象,而在Collection中,Set接口的实现类是不存在索引值的,所以不能用普通for循环

3.什么是泛型?使用泛型有什么好处?

泛型说的是未来的类型(不确定的类型),当一个类或方法再或者接口在定义时期不确定未来具体应该接收什么类型的对象时,可以使用到泛型。
使用泛型的好处是:可以将原本在运行时期的异常提升到编译时期报错。也避免了使用对象原有特性需要强制转换的麻烦。
作者: 蔡超凡    时间: 2018-6-22 11:17
1、集合和数组的区别?
[1]集合的长度是可以改变的,数组的长度是不能改变的.
[2]集合的无法存储基本类型,如果需要可以通过存储基本类型的包装类,数组可以存储基本类型数据.
集合的底层是数组.

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
[1]迭代器就是一种遍历集合的工具,是接口类型,可以通过hasNext方法判断指针后面是否有元素,可以通过next
方法获取元素.增强for循环可以对集合和数组进行遍历,如果对集合遍历,底层就是迭代器,如果对数组进行遍历
底层就是for循环.
[2]增强for循环可以对集合进行遍历,而普通for循环不能,因为增强for循环对集合的遍历底层就是迭代器.

3.什么是泛型?使用泛型有什么好处?
[1]泛型是对数据类型的有一种声明(规范).
[2]集合可以存储任意数据类型,如果没有写上泛型而存储不同类型的数据容易在运行的时候引发异常.写上泛型就
把异常提前到编译的时候检查出来.
作者: 刘思聪    时间: 2018-6-22 11:20
1、集合和数组的区别?
集合长度可变,一个集合可以存储多种引用类型的数据(不设置泛型的话),但也只能存储引用类型。
数组长度固定,数组即可以保存引用类型的数据也可以保存基本类型的数据,但是一个数组只能保存同一种类型的数据

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是实现集合的遍历(迭代)的一种方式,可以获取集合中的每个元素,增强for是一种用于集合和数组的遍历的语法形式,底层通过迭代器实现可以直接获取到每个元素并进行需要的操作,而普通for循环,则需要手动去获取每个元素,但是普通for循环也可以实现很多增强for不能直接实现的,与集合和数组无关的操作(比如阶乘等)。

3.什么是泛型?使用泛型有什么好处?
泛型是一种用来用来限制数据类型的语法结构,可以把数据类型作为参数传递给方法、对象等,提高代码的灵活性,同时确保数据类型的一致,可以有效减少出现类型转换错误(ClassCastException)的可能性(毕竟多数时候,Collection里存储的元素的数据类型是一致的)。
作者: wangyuchen    时间: 2018-6-22 11:24
王宇晨1、集合和数组的区别?

     集合的长度是可以变化的,数组的长度是固定的。
     数组中存储的都是同一类型的元素,集合中存储的都是对象,而且对象的类型可以不同。

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

     迭代器就是Iterator对象,是用来遍历集合元素的。
     增强for是高级for循环,是用来遍历数组和集合的,内部原理是Iterator迭代器。
     for循环可以对元素进行增删操作,而增强for则不可以。

3.什么是泛型?使用泛型有什么好处?


     泛型:可以在类或方法中提前使用未知的类型。
     好处:将运行时出现的错误,转移到了编译时期,变成编译失败;避免了类型强转的麻烦。

作者: lin12345    时间: 2018-6-22 11:28
林焕
1.集合的长度可变,数组的长度不可变;

2.迭代器:Collection集合元素的通用获取方式,在获取元素时,先判断集合是否有元素获取,然后遍历集合;
增强for:专门用来遍历数组和集合的for循环;
与普通for循环的区别在于:增强for的的内部原理是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作,而且增强for也只能用来遍历集合或者数组;

3.泛型:可以在类或方法中预支地使用未知的类型;
好处:将运行时期错误提前到编译时期;
避免了类型强转的麻烦;
作者: 杨银龙    时间: 2018-6-22 11:33
1.集合长度是可变的,数组的长度是固定的。
  集合存储的是引用类型,可以存放不同类型对象;
  数组存储的是基本类型,只能放同一类型。
2.迭代器就是jdk设置的专门用来遍历集合元素的接口,就是Iterator对象。
3.泛型就是不确定有什么类型的对象时,可以提前预支使用的未知类型。
  好处:将运行异常提升到编译时期来解决;防止强转的麻烦;灵活方便。
作者: xiguahx    时间: 2018-6-22 11:34
黄希

1、集合和数组的区别?
        集合和数组都是容器。
        数组的长度是固定的;集合的长度是可变的。
        数组中只能存储同一数据类型的数据,可以存储基本数据类型的数据;集合中存储的是对象,对象类型可以不一致。       

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
        迭代就是Collection集合获取元素的一种方式。先通过iterator()方法获取集合对应的迭代器,然后使用hasNext()方法判断是否存在下一个元素,如果有,则使用next()方法获取下一个元素,如此反复,直到hasNext()方法返回false为止,遍历结束。
       
        增强for循环的底层依赖于迭代器实现。遍历过程中,不能添加或删除集合中的元素。
        普通for循环,在循环过程中,可以获取集合或数组的索引值。

3.什么是泛型?使用泛型有什么好处?
        在定义类、接口或方法的时候,使用未知的数据类型。在调用时,使用具体的数据类型替换未知的数据类型,实现不同的功能。体现了代码复用,封装的思想。
       
        使用泛型的好处:
        1、将运行时期的ClassCastException异常,转移到了编译时期,造成编译失败;
        2、避免了数据类型转换的麻烦。


作者: 康春达    时间: 2018-6-22 11:34
1、集合和数组的区别?
数组的长度不可以改变,而且数组只能存储一种基本类型的数据元素
集合的长度是可变的,存储的数据类型也可以不同

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
一种方法可以访问容器对象中的元素  
只显示集合名称和元素属性和元素的for循环 没有i指针
3.什么是泛型?使用泛型有什么好处?
一种通用数据类型 不需要重复定义 编写

作者: 厦门黑马王子    时间: 2018-6-22 11:42
郑雪平

今天学习了集合和泛型两个知识点,集合是个大容器,按存储结构可分为单列集合Collection和双列集合Map,Collection有两个子接口List和set.还有之前讲的数组也是容器,但是两者是有区别的,集合的长度可变,数组的长度不可变。集合可以存储任意类型的数据,数组则是基本类型数据。
  迭代器就是从集合中取出元素的一种方式,增强FOR循环是一个高级For循环,专门用来遍历数组和集合的,它的内部原理是一个迭代器,不能对集合中的数据进行增删改操作。泛型是一种广泛的数据类型,使用泛型的好处就是避免类型转换带来的问题,把明确数据类型的工作提前到编译时期,从而避免运行时期异常的出现,泛型可以简化代码的书写提高编译效率。
作者: 598170337    时间: 2018-6-22 11:49
官启文
1、集合和数组的区别?
数组只能存储一种数据类型,长度不可变
集合能存储各种数据类型,基本数据类型的时候要包装
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器:可以遍历集合的,用hasnext()方法查看下一个是否有元素
用next()方法记录下元素。
增强for遍历集合,底层是迭代器
增强for有迭代器的优点,普通for没有。
3.什么是泛型?使用泛型有什么好处?
声明未来不确定的类型,或是说通用类型,看调用者传递啥类型就是啥类型。
提高代码的通用性
作者: 就叫那个谁    时间: 2018-6-22 12:00
本帖最后由 就叫那个谁 于 2018-6-22 12:02 编辑

谢精良
1.集合长度是可变的 数组的长度是固定的     集合只能存储引用数据类型 而数组可以基本数据类型和引用数据类型都能存储
2.迭代器是遍历集合的工具,通过hasnext方法判断后面是否还有元素, 如果有则可以通过next方法获取    增强for可以对集合进行遍历,而普通for循环不能
3.可以在类、方法、接口中定义未知的类型。
好处:可以把运行时期错误提前到编译时期;

作者: 夜太美    时间: 2018-6-22 15:04
贾宗虎

1、集合和数组的区别?  集合长度是可变的,只能存放引用类型数据.
  数组长度是固定的,可以存放引用类型和基本类型数据,但一个数组中只能存放同一种类型数据

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
  迭代器是用来实现遍历集合的一种工具.通过指针的方式,一个一个获取集合当中的元素.
  增强for循环底层也是通过迭代器实现的,可以用来遍历集合或数组.只能获取,并不能增删改.
  普通for只能手动获取元素,但可以增删改

3.什么是泛型?使用泛型有什么好处?

  泛型是用来接受未知的数据类型的时候,声明在类,方法中的工具.
  好处:  使用泛型可以将在运行时期的错误,提前到编译器来,更早的发现代码的逻辑错误.使我们的编写代码的时候,提高复写率,也更加灵活.

作者: 想不出名字Snail    时间: 2018-6-22 16:48
洪文生
1、集合和数组的区别?
数组的长度不可变,集合的长度可变。
数组能存放基本数据类型和引用数据类型的数据,而集合只能存放引用数据类型的数据

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器:用来遍历集合元素的对象
增强for:数组或者集合用来的遍历的方法
区别:增强for只能用在数组和集合上,且遍历过程中不能对元素进行增删。

3.什么是泛型?使用泛型有什么好处?
未知的类型。当在编程时,不知道传什么数据类型的时候就可以用泛型。
将程序运行时出现的类型转换异常提前到编译时期

作者: 1NightStand    时间: 2018-6-22 16:51
1、集合和数组的区别?集合的长度是可变得,数组的长度不可变.
集合可以存放任意数据类型,数组通常只能存放一种,大多数用于基本类型.

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

迭代器是用于遍历集合的接口,里面有hasNext(返回值boolean),next(获取下一元素)以及remove方法.
增强for是for each循环,主要用于遍历集合,不适用于做集合的增删操作,格式与用途和普通for不一样.

3.什么是泛型?使用泛型有什么好处?

泛型就是未知的类型,泛型可以定义在类,方法,接口(通用度较高)中.
使用泛型可以提高代码的灵活度,传什么数据类型进去该类/方法/接口就是什么数据类型,以及提高复用性,一行代码多次调用可传不同数据类型.

作者: 明月照大姜    时间: 2018-6-22 19:35
杨银万
1、集合和数组的区别?
集合的长度是可变的,在创建时不需要声明长度,数组的长度是固定的,在创建时需要声明长度。集合只能存放引用数据类型,而数组可以存放基本数据类型和引用数据类型
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是用来遍历集合的工具,是接口类型。增强for在循环时拿到的是对象,而普通for在循环时拿到的是索引值
3.什么是泛型?使用泛型有什么好处?
泛型是对数据类型的一种声明规范。
使用泛型可以提前使用未知的数据类型,在集合上使用泛型可以规定集合存储的数据类型,在编译时就会显示存储不同类型数据时的异常,避免运行异常

作者: 丶犯二    时间: 2018-6-22 19:47
任佳锋

1、集合和数组的区别?
数组长度固定,里面的元素类型一致;
集合可存入多种引用类型数据,不过只能存入引用类型数据
若想存入基本数据类型则需要存入该基本数据类型的包装类,集合的底层是数组结构

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器,遍历Collection的一样工具;
迭代,简单来讲就是从左往右数数,而迭代器则是实现这一功能的工具;

遍历Collection时,通过Collection对象调用iterator()方法从而获得迭代器对象(也就是工具)
迭代器里面有三种方法,配合while循环从而可以遍历集合
hasNext()判断当前指针(从左往右数数指针在最左边)右边有没有元素
next()获取当前指针右边的元素,并将指针往右移一位
remove()删除刚刚获取的元素


增强for循环可以对Collection或数组进行遍历,底层也是通过迭代器来遍历的,不过增强for遍历过程中无法通过集合的方法对数据进行增删操作,会引起并发修改异常(好像是这么叫来着),
只能通过迭代器自带的方法或者他儿子类ListIterator里面的方法对数据进行操作
普通for循环只能遍历有序有索引的数组或集合,但是可以对数据进行增删改查


3.什么是泛型?使用泛型有什么好处?
泛型指未知(未来)的类型,当你创建类。方法。接口时传入的参数不知道是啥类型的时候就可以使用泛型;
简单讲就是规范传入参数的数据类型;
使用泛型可以将运行时期的错误提前到编译时期;
作者: 王_叔叔    时间: 2018-6-22 21:12

王博


1、集合和数组的区别?
集合长度可以改变,集合不能储存基本数据类型,基本数据类型必须转换为相应的包装类
数组长度不可改变,可以放任意类型数据


2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器就是用来遍历集合的工具
增强for可以用来遍历集合和数组,底层是一个迭代器
有些集合是无序的,要遍历的话只能用增强for,而普通的for循环无法遍历


3.什么是泛型?使用泛型有什么好处?
泛型是用来给类,接口,方法进行声明,代表一个未来的数据类型
好处就是能将运行错误提升到编译时报错,提高编写效率




作者: 陈绍飞.    时间: 2018-6-22 23:26

1.集合长度是可变的数组的长度是不可以改变的,数组只能存储基本数据类型数据而集合可以存储的各种引用数据类型的数据。

2.迭代器是用来遍历集合的工具,增强for可以用来遍历数组或集合的它的底层也是迭代器,主要是增强for索引值是不提供的的就对集合或数组无法增删改查了,而普通for循环是可以进行增删改查的。

3.泛型是未知类型,主要的好处是可以把运行的数据类型转换的错误提前到编译的时候提示。
作者: abaoo2018    时间: 2018-6-23 08:42
1、集合和数组的区别?
数组长度在定义时已固定,不可改变;数组可以存储基本类型数据;数组只能存储一种数据类型;数组print打印为地址。
集合长度可变可扩容;不可存储基本类型;在不定义泛型时可存储不同数据类型
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代:按顺序获取集合元素的一种方式
foreach循环,仅可用于遍历集合或数组,不可增删改
3.什么是泛型?使用泛型有什么好处?
可以在类或方法中预支地使用未知的类型
即在定义时不是具体类型,在使用时要变成具体类型
没有泛型,集合可以存放任何类型的元素
使用泛型可以是运行时的异常提前为编译异常

作者: 五先生    时间: 2018-6-23 09:00
吴香斌

1、集合和数组的区别?
      
长度
存储数据类型
获取数据方式
直接打印效果
数组
不可变
所有
[索引值]
除字符和字符串,其余为地址值
集合
可变
所有
add/remove方法
打印内容

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
      迭代器是用于遍历集合或者数组的一个接口,通过其子类调用iterator方法,创建迭代器的对象,然后调用迭代器方法,来实现遍历.
      增强for的底层是迭代器,是对数据或者集合遍历的更简便写法.
      增强for和普通for的区别: 普通for是存在初始化语句/判断语句/步进语句,然后执行语句体,来实现循环.
                                             增强for只需要提供循环对象,通过一个与元素同类型的引用,将元素一一赋值给这个引用,通过操作这个引用来实现对循环对象的操作.

3.什么是泛型?使用泛型有什么好处?
        泛型其实是广义算法的一种表型形式,使对数据的操作与数据的类型及其存储方式无关.
        泛型也是对数据的一种限制.
        泛型提高了代码的复用性.





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