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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、集合和数组的区别?
    数组的长度不可变,集合的长度可以变

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

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
    List接口下有ArrayList集合和LinkedList集合。
    ArrayList集合:ArrayList集合的底层是数组,是栈数据结构,特点是增删慢、查询快。
    LinkedList集合:LinkedList集合的底层是队列,是链表数据结构,特点时增删快、查询慢。
回复 使用道具 举报
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 底层是链表结构 所以它 增删快 查询慢
回复 使用道具 举报
1、集合和数组的区别?
集合可以在程序运行时改变长度,可以添加或是删除元素,集合可以保存不同数据类型的元素
数组在程序执行时无法改变数组长度,数组只能存储相同类型的元素。

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


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

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

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

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

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
List接口下Arraylist和Linkedlist有两个常用的集合
Arraylist集合的底层数据结构是数组实现,存在"查询快,增删慢"的特点
Linkedlist集合的底层数据结构是链表实现,存在"查询慢,增删快"的特点
回复 使用道具 举报
今天我们开始了集合的学习,请根据自己的理解回答下面问题:

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


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


3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
List接口下有很多集合,最常用的两个集合是ArrayList和LinkedList等等,
ArrayList:底层的数据结构是数组;
特点:查询快(索引值是连续的,只要查询索引值就可以获得该数组的元素),
          增删慢(每次增删都会生成新的数组)
LinkedList:底层的数据结构是链表;
特点:查询慢(索引值是随机的,查询时需要从第一个元素开始查询,直至查询到该元素),
          增删快(每次增删的时候只要将元素的地址值进行拼接就可以,不会生成新的链表)
回复 使用道具 举报
1.集合长度可变,数组长度一设置就不可变。
集合只能存储引用数据类型,数组既可以存储引用数据类型,还可以存储基本数据类型。
2.迭代器用于集合遍历,是通过集合的iterator()方法得到的,它是依赖于集合而存在的。
   增加for循环跟for循环相似,格式如下:
for(元素数据类型 变量名 : 数组/集合对象名) {
    循环体;
}
普通for循环依赖集合索引遍历,增强for循环底层由迭代器实现,简化了代码书写。
3.目前学的只要有2个。
ArrayList集合:底层数组实现,查找快,增删慢。
LinkedList集合:底层链表实现,查找慢,增删快。
查了一下API,发现还有好几个集合,Vector等等。
回复 使用道具 举报
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的特点是:增删快,查询慢
回复 使用道具 举报
1、集合和数组的区别?
数组:用于存储多个相同类型数据的存储模型,存储的数据容量不能发生改变
集合:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变

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

3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
List接口分为:
1.ArrayList集合:底层是数组结构        特点:查询快,增删慢
2.LinkedList集合:底层是链表结构        特点:查询慢,增删快
回复 使用道具 举报
1、集合和数组的区别?
集合存储引用数据类型,数组储存基本数据类型和引用数据类型。
数组的长度是固定的,集合的长度是可变的。
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器是集合中用于遍历集合元素的方式。增强for优点就是简化迭代器,缺点是不能访问索引和增删。
3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
list接口下有ArrayList、LinkedList
ArrayList底层为数组结构,特点:查询快,增删慢。
LinkedList底层为链表结构,特点:查询慢,增删快。
回复 使用道具 举报

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

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 ,扩展了参数的范围,优化了需要多次重载的场景。
回复 使用道具 举报
1、集合和数组的区别?
(1).长度:集合长度可变,数组不可变
(2).数据类型:集合存储引用数据类型,数组存储基本数据类型加引用数据类型。
2、什么是迭代器,什么是增强for,增强for和普通for循环的区别?
迭代器就是集合遍历数组的一种方式,增强for底层就是迭代器 。增强for就是普通for循环改进版,更加简洁高效。
3、List接口下都有哪些集合,他们底层各自使用什么数据结构,有什么特点
List下面有ArrayList和LinkedList
ArrayList底层是数组结构主要查询快,增删慢。
LinkedList底层是链条结构主要增删快,查询慢。
回复 使用道具 举报
本帖最后由 朱铭恺 于 2019-6-22 21:23 编辑

错删。。。。。。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马