黑马程序员技术交流社区

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

作者: 厦门校区    时间: 2018-12-20 18:35
标题: 【厦门JavaEE就业5期-每日总结】Collection、泛型

1、集合和数组的区别?

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

3、什么是泛型?使用泛型有什么好处?
作者: 陈彬    时间: 2018-12-20 20:52
本帖最后由 陈彬 于 2018-12-20 21:34 编辑

1、集合和数组的区别?
1.集合的长度可以改变 2.数组的长度不可改变
2.集合创建之后默认初始10个容量 2.数组没有特别的规定,根据我们自己写的长度创建,可以为0
3.集合中只能存储引用数据类型,不能存储基本数据类型3.数组基本引用都能存
4集合直接打印集合得到的是集合的内容4.直接打印数组,得到的是内存地址哈希值
5.集合可以增删改查5.数组只能 改查
6.集合修改使用set(int index , E e) 6.数组名[索引值] = 元素;
7.集合的获取 get(int index);7.数组获取  数组名[索引值];
8. 集合中的长度获取 size(); 8数组的长度获取是.数组名.length;
9集合不能使用基本数据类型只能使用对应的包装类9数组可以直接存基本数据类型
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器可以用于没有索引值和有索引值的数组的遍历,增强for就是迭代器,专门用于遍历数组和集合的for循环。
增强for 只能对数组或者单列集合进行遍历  普通for能对容器进行遍历,能对字符串进行遍历,也能够将指定的代码运行指定的次数
增强for 适用于遍历没有索引的容器  普通for遍历容器,适用于遍历有索引值的容器
因为增强for底层是一个迭代器,所以就不能再遍历的过程中增删元素  普通for可以在遍历的过程中增删元素[/td]
3、什么是泛型?使用泛型有什么好处?
泛型就是一种在创建中不确定的数据类型  只有在创建对象,或者使用方法是确定数据类型。使用泛型可以提高代码的复用率,用来灵活地将数据类型应用到不同的类、方法、接口当中。[td]将运行时期的ClassCastException,转移到了编译时期变成了编译失败。
避免了类型强转的麻烦。[/td]






作者: Wujainwei    时间: 2018-12-20 20:53
Collection:
使用多态  Collection<E> coll = new 任意单列集合;
可以使用Collection方法:.add()   .remove()   .contain()  .isEmpty()  .size()   Object[]=.toArray()   .clear()

迭代器Iterator的使用:
Iterator<E> it = coll.Iterator();
可以使用方法  coll.hasnext()   coll.next()
不能再迭代中添加元素(用Collections下的Iterator可以添加)

增强for:
for(数据类型 变量名 : 数组名称 ){
sout(变量名)
}

泛型:未知的,不确定的数据类型,可以看作一个变量,用于接受数据类型。
优点:不能使用数据类型特有的方法;避免类型不一致而出现转换错误;把运行期异常提升到编译期。
弊端:只能使用同一数据类型。

泛型类: public class 类名称<E>{}
泛型成员方法:public <M> 数据类型 方法名(M m){}
泛型静态方法:public stati <S> 数据类型 方法名(S s){}
泛型接口:泛型类: public interface 接口名称<E>{}   并有两种实现类使用方式。

泛型通配符“?”:方法的参数列表中使用(创建对象是不可用)
泛型的限定:上限限定:<?extends E >  必须是E类型或其子类
            下限限定:<?super E >   必须是E类型或其夫类
作者: 陈辉阳    时间: 2018-12-20 20:53
什么是迭代器,什么是增强for,增强for和普通for循环的区别?
          迭代器可以用于没有索引值和有索引值的数组的遍历,增强for就是迭代器,专门用于遍历数组和集合的for循环。
                                 增强for                                                                              普通for
            只能对数组或者单列集合进行遍历                     能对容器进行遍历,能对字符串进行遍历,也能够将指定的代码运行指定的次数
[td]             适用于遍历没有索引的容器                                                         遍历容器,适用于遍历有索引值的容器
因为增强for底层是一个迭代器,所以就不能再遍历的过程中增删元素                    可以在遍历的过程中增删元素[/td]
作者: 陈基林    时间: 2018-12-20 20:54
1、集合和数组的区别?
1、集合在创建之初默认的长度为10,在程序运行过程中可以改变长度,而数组没有默认长度,创建之后要使用就要设定一个长度,之后便不可再改变它的长度。也因为长度可变集合可以实现增删改查功能,而数组只能改查不能增删。2、集合中只能存储引用数据类型,而数组中可以存储基本数据类型和引用数据类型。
3、对于直接打印集合和数组,因为集合有重写toSting方法,所以打印的是内容,数组这边没有重写toString方法默认使用的是超类object的toString方法打印的是地址值。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
Iterator对象被称为迭代器。增强for循环也被称为foreach循环,专门用来遍历集合和数组的,它的底层原理其实就是一个Iterator迭代器。
区别: 1、语法格式不同。2、应用场景不同,由于增强for循环原理就是迭代器,在遍历的过程中不能进行增删元素,所以应用范围就比普通for循环要小的多。

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

泛型可以看成是一种未知的数据类型。
好处:1、避免了类型转换的麻烦,存储的是什么类型,取出的就是什么类型。
          2、把运行期会出现的异常提前到了编译期。

作者: Chidori    时间: 2018-12-20 20:54
1、集合和数组的区别?
集合的长度可变,集合是用来存储对象的数组的长度不可变,数组用来存储基本数据类型
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器采用指针的方式跟踪集合元素,这样既可以遍历有索引值的集合也可以遍历无索引值的集合
增强for循环专门用来遍历集合和数组,他的内部原理其实是个迭代器
增强for循环和普通for循环一样都是用来遍历集合以及数组的,但是普通for循环不能用来遍历无索引值的数组,但是可以在遍历时进行删减操作,而增强for循环可以对所有数组以及集合使用,增强for循环内部原理时迭代器,所以不能在遍历过程中进行增删操作。
3、什么是泛型?使用泛型有什么好处?

在不知道将要使用的类或方法是什么类型时,可以使用泛型来代表将要使用的类型。
可以将报错时间从运行报错,提前到编译报错。

作者: 吴少华    时间: 2018-12-20 21:01
1、集合和数组的区别?
数组不能改变长度,能存储同一基本类型和同一引用类型
集合初始化10个空间,会自动拓展,只能存储引用类型

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器就是判断集合或者数组有没有元素有就逐个取出知道集合或数组没有元素为止,增强for底层还是迭代器,无所索引值进行集合或数组遍历,增强for循环不能再迭代的过程改变集合或者数组的长度,适合无需索引值的容器,普通for循环在遍历的过程可打印可增减容器长度等使用。
3、什么是泛型?使用泛型有什么好处?
泛型就是在创建时类或方法接口中的元素是什么类型,就预留一个未知类型的位置,当创建对象应用时确定数据类型。泛型防止数据转型的麻烦,使运行的时候抛出异常提前到编译器抛出异常
作者: 陈佳鹏    时间: 2018-12-20 21:05
1.集合长度可变,数组长度不可变;集合只能存储引用数据类型,数组既可以存储引用数据类型也可以存储基本数据类型;集合有默认的初始容量为10,数组的长度必须在创建时自己给定。
2.迭代器用于遍历没有索引值的集合。增强for底层就是一个迭代器。增强for只能用于遍历单列集合和数组,普通for不仅可以用于便利有索引值的数组和集合,还可以对指定的代码运行指定的次数。
3.泛型就是一种在创建中不确定的数据类型  只有在创建对象,或者使用方法是确定数据类型。泛型提高了代码的复用率,用来灵活地将数据类型应用到不同的类、方法、接口当中。将运行时期的ClassCastException,转移到了编译时期变成了编译失败。避免了类型强转的麻烦。
作者: lj478360767    时间: 2018-12-20 21:07

1、集合和数组的区别?
(1)数组的长度不可改变,集合的长度没有限制;
(2)数组可以存储各种类型的数据,集合只能存储引用类型数据,对于基本类型数据进行包装处理;
(3)数组的元素存取都是有序的,元素可以重复,有索引值。集合则不一定,集合中有一些是无序的,元素不可重复。
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是集合遍历的一种工具,首先判断集合中是否还有元素,如果有将之取出,取出后再次判定,直到集合中的元素都被取出了为止。
增强for是专门遍历集合和数组的一种工具,他也是一个迭代器。
普通for是遍历有序的集合或数组,根据索引遍历,能够控制循环的次数,能够对集合或数组进行增加删减工作,而增强for还可以遍历无序的集合或数组,不需要索引来操作,但是不能控制循环的次数,不能对集合或数组进行增加删减工作。

3、什么是泛型?使用泛型有什么好处?
泛型就是可以在类或方法中预支地使用未知的类型。
泛型的好处:
(1)消除强制类型转换
(2)提高代码安全性,将异常从运行失败转移到了编译时期变成了编译失败





作者: ab8846254    时间: 2018-12-20 21:14
本帖最后由 ab8846254 于 2018-12-20 21:16 编辑


1、集合和数组的区别?
答:1.集合长度可变,数组长度不可变
       2.数组可以存储基本数据类型,和引用数据类型,集合只能存储引用数据类型
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:1.因为集合有些有索引有些没有索引,所以有迭代器的存在,迭代器底层是一个指针指向元素,通过方法判断是            否存在元素,若存在则直接获取元素。
      2.增强for是为了简化我们的迭代器写法,其实它的底层也是一个迭代器,
      3.最明显的一个区别就是 普通for有索引,而增强for没有索引。
      4. 普通for循环可以运行我们需要指定运行次数的代码,增强for无法做到,
      5.普通for里面可以增删,增强for里面不可以增删因为增强for底层是一个迭代器,所以就不能再遍历的过程中增删元素[td]
     6.普通for可以对数组 集合,字符串 进行遍历,增强for只能对数组,和单利集合进行遍历
3、什么是泛型?使用泛型有什么好处?
答:泛型可以说是容器的标签,加了泛型就代表我们这个容器只能装这种数据类型的数据,其他的数据类型就无法装了。















作者: 黄海兵    时间: 2018-12-20 21:19
1:数组长度不可变 可以存储引用类型和数据类型。 集合长度可变,只能存储引用类型。
2:迭代器是集合遍历元素的一种工具。
增强for是专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。
区别 应用场景不同 增强for在遍历是不能进行增删操作 普通for可以
3:可以在类或方法中预支地使用未知的类型 能避免类型强转的麻烦。

作者: 李柏刚    时间: 2018-12-20 21:19
1、集合和数组的区别?
     集合长度可以改变,默认初始长度为10,会自动扩容,只能存储引用数据类型,使用基本数据类型使用对应的包装类,长度获取是.size ,直接打印得到的是集合的内容。     数组长度不可变,没有默认初始长度,无法扩容,可以存储基本数据类型和引用数据类型,长度获取是.length ,无法直接打印数组的内容。
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
     迭代器即为Iterator接口,是jdk提供的一个可以用来遍历Collection集合的一个工具,它无需通过索引值也可进行遍历,判断集合是否有元素便可依次获取元素,更加高效,但遍历过程中不允许增删元素,如需增删操作可以使用listIterator。
   增强for,是JDK1.5版本之后提供的一个增强版的for循环,内部原理其实也是Iterator迭代器,用来遍历集合和数组。增强for和普通for的定义格式不一样,增强for是按位置依次提取元素,遍历中不能对元素进行增删操作;普通for通过索引获取元素,遍历中可以进行增删。
3、什么是泛型?使用泛型有什么好处?

     泛型:可以在类和方法中预先使用未知的类型当作数据类型,统称做泛型。
               当你无法确定对象类型的时候,可以使用泛型作为类型。在创建的时候再来确定具体的类型去替换它,提高代码的复用性,减少强制类型的转换。



作者: 李灵杰    时间: 2018-12-20 21:22
1、集合和数组的区别?
1.集合的长度可以改变 2.数组的长度不可改变
2.集合创建之后默认初始10个容量 2.数组没有特别的规定,根据我们自己写的长度创建,可以为0
3.集合中只能存储引用数据类型,不能存储基本数据类型3.数组基本引用都能存
4集合直接打印集合得到的是集合的内容4.直接打印数组,得到的是内存地址哈希值
5.集合可以增删改查5.数组只能 改查
6.集合修改使用set(int index , E e) 6.数组名[索引值] = 元素;
7.集合的获取 get(int index);7.数组获取  数组名[索引值];
8. 集合中的长度获取 size(); 8数组的长度获取是.数组名.length;
9集合不能使用基本数据类型只能使用对应的包装类9数组可以直接存基本数据类型

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器:  针对遍历集合中元素的方法,提供的一种接口,遍历Collection集合,那么就要获取该集合迭代器完成迭代操作
普通for可以在遍历过程中增删元素,增强for不能

普通for能对容器进行遍历,能对字符串进行遍历,也能够将指定的代码运行指定的次数, 增强for只能对数组或者单列集合进行遍历

3、什么是泛型?使用泛型有什么好处?
泛型:可以在类或方法中预支地使用未知的类型。

好处:
将运行时期的ClassCastException,转移到了编译时期变成了编译失败。
避免了类型强转的麻烦。



作者: 黄毅    时间: 2018-12-20 21:22

1、集合和数组的区别?
集合只能存储引用数据类型,长度可变
数组可以既可以存储基本数据类型,有可以存储引用数据类型,长度不可变
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个
元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业
术语称为迭代。
增强for:专门用来遍历数组和集合的
增强for在遍历过程中无法进行增删操作,普通for则可以进行增删操作
增强for没有索引,普通for有索引
普通for可以随意设定循环次数,增强for则一直执行到底
3、什么是泛型?使用泛型有什么好处?
泛型:可以在类或方法中预支地使用未知的类型
好处:将运行时期的ClassCastException,转移到了编译时期变成了编译失败。
           避免了类型强转的麻烦
  





作者: 苏志祥    时间: 2018-12-20 21:23


1、集合和数组的区别?
集合的长度是不固定的,数组的长度不可改变 ;集合存储的是数据的引用类型,数组可以存储基本数据类型也可以存储引用数据类型;集合长度格式:集合名称.size(),数组长度格式:数组名称.length();
集合的基础默认长度是10,数组的长度可以自己创建;
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是Collection的一个实现的接口,可以用来遍历集合元素(不管有无索引值);
增强for循环(也称for each循环)专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。
区别:
1增强for代码简单使用方便,但是只试用于遍历Collection和数组。通常只进行遍历元素,不要在遍历的过程中对集合元素进行增删操作。普通for循环适用于所有数组跟集合的便利,可以在遍历的过程中增删改元素。
3、什么是泛型?使用泛型有什么好处?
泛型是指在不清楚数组元素的类型时候,可以在类,方法还有接口中定义泛型,当我们在创建对象时,调用方法时,或者直接在接口确元素的类型;
好处:   1、将运行时期的ClassCastException异常,转移到了编译时期,造成编译失败;
        2、避免了数据类型转换的麻烦。
作者: 周章强    时间: 2018-12-20 21:23

1.区别:        数组                                        集合
长度:          固定不变,没有默认值;                长度可变,默认值10。
元素类型:可以是基本类型也开始是引用类型;        只能是引用,基本类型需要先进行包装。
打印:        地址值;                                元素以数组的形式打印(toString重写)。
赋值方法:直接用索引值给目标元素赋值;                通过set,add方法改变元素值。
长度获取:array.length();                        arraylist.side();

2.迭代器:jdk提供的为了方便里边数组和集合的方法。
区别:
(1)语法格式:普通for(初始化语句;判断条件;步进语句){};
        增强for (容器中的元素数据类型  变量名 :容器对象){};
(2)应用场景:普通for除了能遍历容器和字符串,还能循环指定代码。
        增强for只能用来遍历数组和集合。
(3)索引:普通for 适用于有索引值的容器;
        增强for 适用于没有索引值的容器。
(4)增删元素:普通for 可以; 增强for 不可以。

3.泛型:当不知道数据的具体类型时用泛型来表示。
  好处:因为数组转换成集合之后,数据会变成object类型,当需要取出数据需要进行强转。
        使用泛型可以在避免进行强转,从而减少ClassCastExeptin异常.
作者: 许晓明    时间: 2018-12-20 21:25
1、集合和数组的区别?
答:数组是容量不可改变的容器,数组的大小从创建之后就固定了,集合是容量可改变的容器,集合的大小初始化为10个,可随着数据的添加增大容量。
数组能存储各种数据类型,包括基本数据类型和引用数据类型,集合只能存储引用数据类型。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:迭代器是集合中的一种接口的实现类,用来遍历集合,增强for循环是一种高级的for循环,专门用来遍历数组和集合,增强for循环本质上也是一个迭代器。
增强for循环只能用来遍历数组或者集合,不能再程序运算过程中对集合或者数组进行修改,适合用于遍历没有索引值的数组和集合。
普通for循环可以用来遍历数组集合,打印语句,遍历字符串,可以再运行过程中对集合和数组进行修改,适合用于遍历有索引的数组和集合。

3、什么是泛型?使用泛型有什么好处?
答:泛型是一种未知的数据类型,也可以是一种变量,用来承接数据类型
好处:1.避免类型转换的麻烦,储存数据是什么类型,取出数据就是什么类型
2.把运行期异常(代码运行之后会抛出的异常),提升到了编译期(写代码的时候会报错)

作者: 陈益源    时间: 2018-12-20 21:33
1、集合和数组的区别?  
数组:长度不可变;可以存储基本数据类型和对象;没有默认的初始长度
集合:长度可以改变,只能存储对象;有默认的初始长度10

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器:Iterator 主要用于迭代访问(即遍历) Collection 中的元 素,因此 Iterator 对象也被称为迭代器。   
增强for:增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,能对数组或者单列集合进行遍历。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。   
增强for和普通for循环的区别:
格式
普通for循环:
for(初始化语句,判断条件,步进语句){
        循环体;
}
增强for:
for(容器中元素数据类型    变量名 : 容器对象){
        循环体;
}
适用场景:普通for循环可以用来指定代码执行次数、遍历字符串、容器;增强for能对数组或者单列集合进行遍历
索引:普通for循环适用于遍历有索引的容器;增强for适用与没有索引值的容器,也可以用于有索引值的容器
遍历过程中增删元素:普通for循环在遍历的过程中可以增删元素;增强for因为底层是一个迭代器,不可以再遍历过程中增删元素

3、什么是泛型?使用泛型有什么好处?
泛型:可以在类或方法中预支地使用未知的类型。   
好处:1.可以不必进行强转类型
          2.避免运行时会出现数据类型转换异常,可以在编写代码的时候提前显示错误。

作者: 骆颖权    时间: 2018-12-20 21:33
1、集合和数组的区别?集合的长度可变,数组的长度不可变。
数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是引用数据类型。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器可以用于没有索引值和有索引值的数组的遍历。
增强for就是迭代器,专门用于遍历数组和集合的for循环。
普通for循环:
                      for(初始化语句;判断条件;步进语句){
                         循环体;
                        }

应用场景:能对容器进行遍历,能对字符串进行遍历,也能够将指定的代码运行指定的次数。
适用于遍历有索引值的容器。可以遍历过程中的增删元素

增强for:
语法格式:
            for(容器中的元素数据类型  变量名 :容器对象){
                          循环体;
                  }

应用场景:只能对数组或者单列集合进行遍历。
适用于遍历没有索引的容器。因为增强for底层是一个迭代器,所以就不能再遍历的过程中增删元素

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

泛型:可以在类或方法中预支地使用未知的类型。
好处:(1)将运行时期的ClassCastException,转移到了编译时期变成了编译失败。
          (2)避免了类型强转的麻烦。


作者: Java中的莫Q哇啦    时间: 2018-12-20 21:36
1、集合和数组的区别?

集合长度可以改变,数组长度不可以改变。

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

迭代器是对集合或者数组遍历的一种方法。增强for的底层原理是运用迭代器的方法实现的,可以对集合和数组进行遍历。增强for和普通for循环区别在,增强for遍历集合和数组不需要索引值,而且只运用于集合和数组中;普通for遍历数组和集合需要索引值,可以运用与的范围比较广,能对容器进行遍历,能对字符串进行遍历,也能够将指定的代码运行指定的次数。

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

泛型就是什么类型都可以指代的一个标识方式,好处:可以在类或方法中预支地使用未知的类型,避免在编译过程中,运行中出现需要强转的尴尬处境。

--------------------------------------huangcc黄成成
作者: 洪烁铭    时间: 2018-12-20 21:41
1、集合和数组的区别?
集合长度可变-->可以增删。 可以直接打印出所有元素
数组长度固定-->不可以增删、需要遍历才能打印所有元素,不能直接输出;

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是可以遍历没有索引值的集合,弥补for循环在遍历集合方面的不足。先判定集合中有没有元素,有就取出,直到集合中所有的元素都取出,这种取出方式就叫迭代。而迭代器就是用迭代方式取出元素的工具。从迭代的概念中就知道迭代器包含两种方法:判断是否存在下一个元素;取出当前下一个元素。
增强for是高级的for循环,专门用于遍历数组和集合的。要知道可以循环的东西是多种多样的,包括种种字符串,指定字符串,增强for就是放弃了其他能力,专注于遍历数组和集合。
增强for既可以用于有索引值的数组和集合,又可以用于没有索引值的数组和集合。它适用于单列集合和数组,它的底层是一个迭代器,因此在循环内不能进行增删元素。

3、什么是泛型?使用泛型有什么好处?
泛型是未知的数据类型。
好处:
1.当遇到未知的数据类型时,如果用object类,就会遇到想使用对象独有的方法时,需要进行数据类型转换的问题,而使用泛型可以避免这个麻烦;
2.一旦对泛型进行了限定后,如果输入的数据类型与限定的类型不符,编译器就会报错,把原本需要到运行期才会暴露的问题提到了编译器。





作者: 洪烁铭    时间: 2018-12-20 21:43
李柏刚 发表于 2018-12-20 21:19
1、集合和数组的区别?
     集合长度可以改变,默认初始长度为10,会自动扩容,只能存储引用数据类型,使 ...

人都没来,作业做这么快。好孩子啊
作者: 董志超Eric    时间: 2018-12-20 21:44
1、集合和数组的区别?
答:
1.长度:数组长度不可变;集合长度可以变,默认10。
2.存储:数组能存储引用数据类型和基本数据类型 ;集合只能存储引用数据类型,对应基本数据类型要使用其对应的包装类。
3.遍历:数组元素是有序的,可以使用for循环 增强for循环和迭代器遍历;集合中list接口和set接口的Hashset集合的元素是有序的,set接口的linkedHashset是无序的

无序的集合不能通过普通for循环遍历。
4.元素使用:集合可以增删改查;数组只能改查。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:迭代器是Collection集合进行遍历集合的工具。
增强for循环是jdk1.5版本后,高级的for循环是为了专门进行遍历集合和数组的,内部原理是迭代器。
增强for循环和普通for循环的区别
1.语法格式:增强for循环:for(容器中的元素数据类型 变量名:容器对象){循环体;}
                   普通for循环: for(初始化语句;判断语句;步进语句){循环体;}
2.应用环境:增强for: 只是能对容器进行遍历。

普通for循环:能对容器进行遍历,可以遍历字符串,也可以将指定语句运行固定次数。
3.关于索引:普通for循环适用于有索引的容器,增强for循环可以无视容器有无索引。
4.增删元素:普通for循环遍历过程中,可以增删元素。但增强for循环因为底层是迭代器iterator,不能进行增删。


3、什么是泛型?使用泛型有什么好处?
答:泛型E是一种未知的数据类型,当我们在创建类、接口、方法的过程中不知道使用什么方法时,可以用泛型占位。
泛型的好处,可以将运行时遇到的类转化异常,提前到编译期间,相当于编译器对代码进行检查。使用泛型的另一个好处是,避免类型强转的麻烦。


作者: 苏阿合    时间: 2018-12-20 21:48
1、集合和数组的区别?
集合的长度可变,数组的长度不可变;集合只能储存引用数据类型,数组可以存储基本类型,也可以存储引用类型。集合创建时默认长度是10,数组是根据自定义的长度进行创建。集合直接打印是集合中的元素内容(重写了toString方法),数组直接打印是地址哈希值。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器:用于遍历集合或数组,进行容器中的元素获取,它会判断是否是最后一个元素,如果不是最后一个元素则会获取元素,并把指针的指向移向下一个元素。增强for:底层是采用迭代器原理进行遍历容器中的元素,简化的遍历容器中的元素代码的书写,它在遍历的过程中,不能对集合中的元素进行增删操作。区别:1、增强for在遍历的过程中,不能对集合中的元素进行增删操作;普通for循环遍历的过程中,可以对集合中的元素进行增删操作。2、增强for可以对没有索引的集合进行遍历,普通for循环不能对没有索引的集合进行遍历。3、增强for在遍历的过程中,不能限制遍历的次数,普通for循环在遍历的时候可以限制遍历次数。

3、什么是泛型?使用泛型有什么好处?
泛型:可以在类或方法中在不明确使用什么类型,进行数据类型占位和统一数据类型。泛型的好处:1、把运行时期异常(代码运行之后会抛出异常),提升到了编译期(写代码的时候会报错);2、避免了类型转换的麻烦,存储数据是什么类型,取出数据就是什么类型。
作者: 王宏    时间: 2018-12-20 21:57
1、集合和数组的区别?
集合长度可以改变,默认初始长度为10,会自动扩容,只能存储引用数据类型,使用基本数据类型使用对应的包装类,长度获取是.size ,直接打印得到的是集合的内容。     数组长度不可变,没有默认初始长度,无法扩容,可以存储基本数据类型和引用数据类型,长度获取是.length ,无法直接打印数组的内容。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是用来遍历集合的
1.因为集合有些有索引有些没有索引,所以有迭代器的存在,迭代器底层是一个指针指向元素,通过方法判断是否存在元素,若存在则直接获取元素。.增强for是为了简化我们的迭代器写法,其实它的底层也是一个迭代器,区别就是 普通for有索引,而增强for没有索引普通for循环可以运行我们需要指定运行次数的代码,增强for无法做到,普通for里面可以增删,增强for里面不可以增删因为增强for底层是一个迭代器,所以就不能再遍历的过程中增删元素

3、什么是泛型?使用泛型有什么好处?
当不知道要用什么数据类型时,需要泛型,泛型的好处是可以避免出现强转失败的情况,减少异常
作者: 吴洪标    时间: 2018-12-21 10:14
一、集合和数组的区别?
1.集合的长度可以改变,而数组的长度不可变;
2.集合创建之后默认初始10个容量,数组的长度根据创建时自己确定;
3.集合中只能存储引用数据类型,不能存储基本数据类型,而这两种类型数组都可以储存;
4.直接打印集合得到的是集合的内容,而直接打印数组得到的是数组对象的地址值;
5.集合的功能:增删改查,而数组的功能:改查;
6.集合修改使用set(int index , E e),而数组修改元素为:数组名[索引值] = 元素;
7.集合的查询 get(int index),数组查询元素:数组名[索引值];
8.集合中的长度获取 size(),数组的长度获取:数组名.length。

二、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代是指一种用于获取Collection集合元素的方式;
增强for循环是基于迭代而改进的一种for循环,用于遍历Collection集合;
增强for循环和普通for循环的区别:
1.定义格式不一样,增强for:for(容器中的数据类型 变量名 :容器名){循环体};
2.应用场景不一样,增强for:用于遍历Collection集合;
                              普通for循环:除了用于遍历集合与字符串之外,还可以用于实现特定代码的循环执行;

三、什么是泛型?使用泛型有什么好处?
泛型是指可以在类或方法中预支地使用未知的类型,是一种声明,表明该处有引用类型,但引用类型要等到使用时才能确定;
使用泛型可以将运行时期的ClassCastException,转移到了编译时期变成了编译失败。另外也避免了类型强转的麻烦。


作者: 林文悦    时间: 2018-12-21 10:17
1、集合和数组的区别?
数组:长度不可变;不可以存储不同类型数据;
集合:长度可变;可以存储不同类型数据;
数组中存储的是同一类型的元素,可以存储基本数据类型值;
集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储;

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是用来对没有索引值的数组进行遍历。增强for专门用来遍历无索引数组和集合,底层也是一个迭代器。
区别:
增强for:遍历过程不能进行增删;只能对数组和单列集合进行遍历;可以对无索引值得数组集合进行遍历;
语法格式:
for(容器中的元素数据类型  变量名 :容器对象){
循环体;
}
普通for:遍历过程可以进行增删;可以对容器进行遍历,能对字符串进行遍历,也能够将指定的代码运行指定的次数;只能对有索引的数组集合进行遍历;
语法格式
for(初始化语句;判断条件;步进语句){
循环体;
}

3、什么是泛型?使用泛型有什么好处?
泛型,用来灵活地将数据类型应用到不同的类、方法、接口当中。将数据类型作为参数进行传递。
好处:当不知道要传入什么数据类型的时候。可以先用泛型占位。
将运行时期的ClassCastException,转移到了编译时期变成了编译失败。
避免了类型强转的麻烦。
作者: 续扬    时间: 2018-12-21 10:57

1、集合和数组的区别?

数组的长度是固定的。集合的长度是可变的。
数组中储存的是同一类型的元素,可以储存基本数据类型值。
集合存储的都是对象。而且对象的类型可以不一致。
在开发中一般当对象多的时候,使用集合进行存储。
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器:collection集合元素的通用获取方式
增强for:遍历数组和集合,底层也是迭代器,简化迭代器的书写,所有的单列集合都可以使用
普通for:应用场景
能对容器进行遍历,能对字符串进行遍历,也能够将指定的代码运行指定的次数索引
遍历容器,适用于遍历有索引值的容器


可以在遍历过程中的增删元素
增强for:
应用场景
只能对数组或者单列集合进行遍历

索引
适用于遍历没有索引的容器

因为增强for底层是一个迭代器,所以就不能再遍历的过程中增删元素
3、什么是泛型?使用泛型有什么好处?
一种未知的数据库类型,不知道用啥就用泛型
避免了类型转化的麻烦
把运行后的异常提升到在编译时就报错

作者: 黄嘉宏    时间: 2018-12-21 11:01
1、集合和数组的区别?
数组的长度是固定的。集合的长度是可变的。
数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致 。
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是判断集合中是否有元素并取出的接口类对象。
增强for循环专门用来遍历数组和集合,不能对集合中的元素进行增删操作。
普通for能对容器,字符串进行遍历,也能让代码运行指定次数
增强for智能对数组或单列集合进行遍历。
普通for使用与遍历有索引值的容器,增强for使用于遍历么有索引值的容器。
普通for在遍历过程中可以赠送元素,增强for不行。
3、什么是泛型?使用泛型有什么好处
泛型指可以在类或方法中预支的使用未知的类型。
泛型的好处,在编译的时候就可以找出错误,避免类型强转的麻烦。





作者: 赵烈刚    时间: 2018-12-21 14:13
1、集合和数组的区别?
数组:一旦创建长度不可改变;数组如果没有规定他的长度默认为空;
集合:长度可变,默认初始长度是10;
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
增强for和迭代器是专门用来对数组或者集合进行遍历;
区别:
增强for在遍历的时候不能进行增删操作;适用与没有索引的遍历
普通for在遍历的时候可以进行增删操作;适用于有索引的遍历
3、什么是泛型?使用泛型有什么好处?
泛型是一种未知的数据类型,当我们不知道用什么数据类型的时候可以使用泛型;
好处:避免了类型转换异常的麻烦,存入的是什么数据类型取出的就是什么数据类型,把运行期的异常提升到了编译期
作者: 杨鑫棋    时间: 2018-12-21 14:27
1、集合和数组的区别?

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

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

    迭代器就是用来对没有索引的集合进行遍历的一种方法。如果想要遍历Collection集合,那么就要获取该集合迭代器完成迭代操作,通过interator方法获取集合迭代器。增强for循环是for循环的高级版本,专门用来遍历数组和集合。由于增强for低层是一个迭代器,所以就不能在遍历的过程中增删元素。

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

可以在类或者方法中预支地使用未知的类型,就是泛型。一般当创建对象的时候才指定类型。
好处:
1.将运行时期的ClassCastException,转移到了编译时期。
2.避免了类型强转的麻烦。
作者: 赵烈刚    时间: 2018-12-21 14:36
1、集合和数组的区别?
数组:一旦创建长度不可改变;数组如果没有规定他的长度默认为空;可以存储引用类型和基本数据类型;
集合:长度可变,默认初始长度是10如果超出初始长度会以1.5倍自动扩容;只能存储引用数据类型;
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
增强for和迭代器是专门用来对数组或者集合进行遍历的;
区别:
增强for在遍历的时候不能进行增删操作且只能对数组或单列集合进行遍历;
普通for在遍历的时候可以进行增删操作;只要给个指定的数值都可以遍历循环;
3、什么是泛型?使用泛型有什么好处?
泛型:是指未知(未来)的数据类型,当不确定使用什么数据类型的时候可以用到;
好处:1.避免了数据类型转换异常,存入的是什么数据类型,取出的就是什么数据类型;2.将运行期的异常提升到了编译器,便于修改。
作者: 刘荣城    时间: 2018-12-21 14:43
1、集合和数组的区别?
集合的长度可以改变,集合的Set可以没有索引值。集合的储存的是对象,而且对象的类型可不一致。
数组的长度不可以改变,数组一定要有索引值,数组可以储存基本类型而集合不可以。数组类型一定类型一定要一致。
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
在开发程序中,经常要遍历集合,迭代器就是遍历工具。
增强for循环就是遍历集合,数组的遍历工具。也是迭代器。
增强for循环可以遍历没有索引值的集合,只能遍历数组和单列集合。不可以增减元素。
For循环可以遍历有索引值的容器,可以增减元素。

3、什么是泛型?使用泛型有什么好处?
在程序中不明确使用什么数据类型,进行数据占位和统一数据类型的名称。
避免数据转换麻烦,统一数据类型。在不明确数据类型的时候,让我们更好写代码。
作者: zhuyiming    时间: 2018-12-21 14:48
1、集合和数组的区别?
数组的长度是固定的,不可以改变的
集合的长度初始值是10,可以在需要的时候增加长度
数组可以使用基本类型集合引用类型
集合只能使用引用类型
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器:不管有没有索引的集合都可以使用,
普通for:
1. 可以对容器进行遍历,可以对,数组,字符串,字符,等等...........
2..遍历的时候  适用于有索引的容器.
3.可以在遍历时.增删改查
增强for
1.只能对数组或者单列集合进行遍历
2.只能遍历 没有索引值的容器
3,不可以在遍历时.增删改查
3、什么是泛型?使用泛型有什么好处?
泛型:
在创建对象的时候指定对象的数据类型,如果不指定默认是object类型
好处:
1.将运行时候的类型转换异常,  改成编译的时候报错
2.避免类型强制转换问题.

作者: 杨馥榕    时间: 2018-12-21 16:23
1、集合和数组的区别?
数组有规定的长度,而集合是可以长度可以添加;
集合可以增删改察,数组一旦固定就不允许增删改;
集合里面只能放引用数据类型,数值里面放基本数据类型;
集合是用size看长度,数组是用length看长度

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:迭代器是可以运用于有索引和无索引的遍历。
增强for相当于也是一个迭代器,但是增强for就是一个底层的迭代器
增强for和普通for最不一样的地方就是语法格式不同,for(初始判断语句;条件判断;步进表达式)快捷键:关键词.fori;增强for(容器中的元素数据类型  变量名 :容器对象)快捷键:关键词.for就行了
普通for可以对容器里的东西和字符串遍历,适用于遍历有索引值的容器增强for只能对数组和单列集合遍历;适用于遍历无索引值的容器
3、什么是泛型?使用泛型有什么好处?
答:泛型:就是在类中先预定一个未知数。
当不知道对象的类型我们可以使用泛型来作为一个未知数,等创建了类型确定了我们在把这个未知数给换成现在的已知数。
               


作者: 洪烁铭    时间: 2018-12-21 19:01
本帖最后由 洪烁铭 于 2018-12-21 19:03 编辑
洪烁铭 发表于 2018-12-20 21:41
[/td][/tr]
[/table]

普通for和增强for的一个重要区别是普通for有索引值,它依靠索引值来遍历。而增强for本质上是迭代器,可以用于无索引值的集合遍历。在理解了增强for是个迭代器的基础上,就知道它在循环时是不能进行增删的。
作者: 赖熙蒙    时间: 2018-12-22 16:28
1、集合和数组的区别?答:数组创建了之后长度固定不可变,而集合的长度可以改变;数组能够存储基本类型和引用类型数据,而集合只能存储引用类型数据。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:迭代器是Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。

增强for是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。
增强for只能对数组或者单列集合进行遍历,而普通for能对容器进行遍历,能对字符串进行遍历,也能够将指定的代码运行指定的次数;增强for适用于遍历没有索引的容器,而普通for既能够用于遍历有索引值的容器又能够用于遍历没有索引的容器;增强for不能在遍历的过程中增删元素,而普通for可以。

3、什么是泛型?使用泛型有什么好处?
答:泛型指的是可以在类或方法中预支地使用未知的类型。使用泛型能够将运行时期的ClassCastException,转移到了编译时期变成了编译失败,能够避免了类型强转的麻烦。



作者: 李嘉福    时间: 2018-12-22 19:58
1、集合和数组的区别?集合
1.集合的长度可以改变
2.集合创建之后默认初始10个容量
3.集合中存储的数据类型必须统一
4.集合中只能存储引用数据类型,不能存储基本数据类型
5.直接打印集合得到的是集合的内容
6.集合的功能:增删改查
7.集合的索引值从0开始
8.集合修改使用set(int index , E e);
9.集合的查询 get(int index);
10.集合中的长度获取 size();
11.使用基本数据类型对应的包装类 Arraylist<Integer> arr =newArraylist<>;
数组
1.数组的长度不可改变
2.数组没有特别的规定,根据我们自己写的长度创建,可以为0
3.数组中存储的数据类型必须统一
4.基本引用都能存
5.直接打印数组,得到的是内存地址哈希值
6.数组只能 改查
7.数组的索引值从0开始
8.数组名[索引值] = 元素;
9.数组名[索引值];
10.数组名.length;
11.想要存储基本数据类型 int[] arr = new int[3];

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是集合遍历的一种工具,首先判断集合中是否还有元素,如果有将之取出,取出后再次判定,直到集合中的元素都被取出了为止。
增强for是专门遍历集合和数组的一种工具,底层使用的是迭代器。
普通for是遍历有序的集合或数组,根据索引遍历,能够控制循环的次数,能够对集合或数组进行增加删减工作,而增强for还可以遍历无序的集合或数组,不需要索引来操作,但是不能控制循环的次数,不能对集合或数组进行增加删减工作。
3、什么是泛型?使用泛型有什么好处?

泛型:是一种未知的数据类型,当我们不知道使用什么数据类型的时候可以使用泛型.
泛型的好处:
(1)消除强制类型转换
(2)把运行期异常(代码运行之后会抛出的异常),提升到了编译期(写代码的时候会报错)

作者: 董志超Eric    时间: 2018-12-22 20:04
1、集合和数组的区别?
答:
1.长度:数组长度不可变;集合长度可以变,默认10。
2.存储:数组能存储引用数据类型和基本数据类型 ;集合只能存储引用数据类型,对应基本数据类型要使用其对应的包装类。
3.遍历:数组元素是有序的,可以使用for循环 增强for循环和迭代器遍历;集合中list接口和set接口的Hashset集合的元素是有序的,set接口的linkedHashset是无序的

无序的集合不能通过普通for循环遍历。
4.元素使用:集合可以增删改查;数组只能改查。

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
答:迭代器是Collection集合进行遍历集合的工具。
增强for循环是jdk1.5版本后,高级的for循环是为了专门进行遍历集合和数组的,内部原理是迭代器。
增强for循环和普通for循环的区别
1.语法格式:增强for循环:for(容器中的元素数据类型 变量名:容器对象){循环体;})
                   普通for循环: for(初始化语句;判断语句;步进语句){循环体;}
2.应用环境:增强for: 只是能对容器进行遍历。

普通for循环:能对容器进行遍历,可以遍历字符串,也可以将指定语句运行固定次数。
3.关于索引:普通for循环适用于有索引的容器,增强for循环可以无视容器有无索引。
4.增删元素:普通for循环遍历过程中,可以增删元素。但增强for循环因为底层是迭代器iterator,不能进行增删。


3、什么是泛型?使用泛型有什么好处?
答:泛型E是一种未知的数据类型,当我们在创建类、接口、方法的过程中不知道使用什么方法时,可以用泛型占位。
泛型的好处,可以将运行时遇到的类转化异常,提前到编译期间,相当于编译器对代码进行检查。使用泛型的另一个好处是,避免类型强转的麻烦。
作者: 王宇鹏    时间: 2018-12-23 21:02


1、集合和数组的区别?
数组的长度是固定的。集合的长度是可变的。
数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不
一致。在开发中一般当对象多的时候,使用集合进行存储

2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
在取元素之前先要判断集合中有没有元素,如果有,就把这个
元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业
术语称为迭代。
专门用来遍历数组和集合的。在遍历的过程中,不能对集合中的元素进行增删操作。
普通for遍历数组和集合需要索引值,可以运用与的范围比较广,能对容器进行遍历,能对字符串进行遍历,也能够将指定的代码运行指定的次数。

3、什么是泛型?使用泛型有什么好处?
泛型就是什么类型都可以指代的一个标识方式,好处:可以在类或方法中预支地使用未知的类型,避免在编译过程中,运行中出现需要强转的尴尬处境。
作者: 洪烁铭    时间: 2018-12-23 21:37
1.List接口下都有哪些集合,他们各自有什么特点list接口下有ArrayList、LinkedList、Vector。ArrayList的底层数据结构是数组,它具有的特点是增删难,查询快;LinkedList的底层数据结构是链表,它具有的特点是:增删快,查询慢。vector具有线程安全、效率低的特点。他们的共同特点是有序;可重复,有索引值

2.Set接口下的集合是如何保证无序不可重复的
通过重写hashCode方法得到对象内容的哈希值,判断元素的哈希值是否相同,如果不同,直接存入;如果相同,需要进一步通过重写的equals方法来进行判断,(因为存在哈希值的算法里可能存在哈希值相同,内容不同的情况)。如果equals判断结果为真,说明内容相同,就是重复元素,不储存;如果为假,则链接在原来元素后面。

3.我们为什么要重写HashCode( )和equals()方法?
不重写时,默认得到的是对象的地址值。这不是我们要的。而重写后能够进行内容的判断,以此来去重。

4.数据在存入Set集合的时候,是先判断HashCode()还是先判断equals(),为什么?
判断hashCode,因为通过哈希值来判断,效率高。进一步说,是因为哈希表是一个数组+链表\数组+红黑树的组合数据结构,所以具有查询效率特别高的特点。对比之下,用equals,效率太低。所以通过一个高效不够严谨的hashCode进行快速筛选,剩余部分,再通过equals来进行内容判断,达到高效又准确的去重效果。

5.Comparable和Comparator两个接口的区别,哪种接口使用的多,为什么?
Comparable:强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的compareTo方法
被称为它的自然比较方法。只能在类中实现compareTo()一次,不能经常修改类的代码实现自己想要的排序。实现
此接口的对象列表(和数组)可以通过Collections.sort(和Arrays.sort)进行自动排序,对象可以用作有序映射中
的键或有序集合中的元素,无需指定比较器
Comparator强行对某个对象进行整体排序。可以将Comparator 传递给sort方法(如Collections.sort或
Arrays.sort),从而允许在排序顺序上实现精确控制。还可以使用Comparator来控制某些数据结构(如有序set或
有序映射)的顺序,或者为那些没有自然顺序的对象collection提供排序。
作者: 艾卡西亚的惊喜    时间: 2018-12-29 21:58
林少伟




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