乐趣区

关于数组:数组与集合有什么不同

这个问题其实就是一个十分根底的面试题,个别面试官想理解你基础知识方面的把握时,根本都会问这个问题,尤其是一些,计算机学子毕业之后,如果还是想要从事计算机技术相干的行业时,那么在面试的时候就须要做好短缺的筹备,因为联合本身思考,大部分刚毕业的计算机专业的同学并没有相干的我的项目教训。

所以依据个别公司的面试环节,面试官会从:本身基础知识储备、我的项目教训、工作态度、集体能力等几个大方面动手,那么针对以上这几点,如果投递简历时,公司在审核简历时针对刚毕业的大学生简历,都会提前跟面试官沟通好,这个时候面试官就会间接跳过我的项目问题,简略间接的次要针对基础知识问题,会问的很多,所以,从事计算机行业,如果不想被淘汰,你就须要每天一直学习减少常识储备量。那么做好心理建设的敌人咱们就持续来理解这个 java 根底知识点吧,从这一刻开始,每天储备一点基础知识,滴水也可汇成汪洋,毕竟千里之行; 始于足下嘛!

那么针对数组和汇合的区别,咱们就先来简略的唠唠区别吧!首先咱们须要明确:什么是数组?

数组(Array):用来有序排列同类数据元素的汇合被称为数组(数组是一个能够存储一组或一系列相干数据的容器),数组中的每个元素都具备雷同的数据类型,在计算机语言中,数组是十分重要的汇合类型,数组的三个基本特征体现在:一致性(像数组它只能保留雷同数据数据类型的元素,能够是任何雷同的数据类型)、有序性(数组中的元素都是有序的,次要通过下标进行拜访)、不可变性(数组一旦开始初始化,则数组的长度是不可变的)。数组有两种创立形式:动静初始化(指定长度),动态初始化(指定内容)。

总体来说数组次要的特点就是:

1. 长度是确定的,数组一旦被创立,它的大小就是不可变的

2. 数组中的元素类型必须是雷同类型,不容许呈现混合类型

3. 数组既能够存储根本数据类型,又能够存储援用数据类型(根本数据类型存储的是值,援用数据类型存储的是地址值)

4. 数组变量属于援用类型,数组也是对象,数组中的元素相当于对象的属性

5. 数组由索引(索引的作用是不便查找元素,索引从 0 开始到数组的长度 - 1 完结)和数组元素组成

6. 通常应用 for 循环来实现对数组的遍历好嘞!敌人们,以上就是针对于数组的大抵简说,接下来咱们要来说说汇合了,理解完数组,再理解完,想必大家就能够对数组和汇合的区别做出论断啦!请问什么是汇合呢?

上次曾经给大家做过对于汇合问题的答复了,大家也能够参考参考哦!那么既然曾经具体解说了,上面我就只做简述喽!其实在学习 java 的过程中亦或者是工作中,咱们始终都是在跟数据打交道,比方怎么把这个数据传输上来,又怎么接管这个数据呢,这个数据如何保留呢?这些都是大家在解决数据时最根底的问题了,特地像咱们切菜的时候,咱们要找碟子或者碗将切好的菜寄存起来,而在日常生活中,像这类用作贮存的容器特地多,像碗啊、碟子啊、食品包装袋啊、纸箱子等。

甚至咱们寓居的房子也是一个大号的容器啊,他们都有一个对立的特点,那就是“能装”,不同的就是他们的包容量不同,他们有各式各样的样子,随着生存的一直进步,这些容器的样子也是越来越难看,这些容器不仅让咱们的生存东倒西歪起来,也进步了咱们的生存品质。同样的,在 java 中也存在各种各样的“容器”,咱们把 java 中所有“容器”的总称,称为汇合。

就像图片中显示的就是汇合中的容器,它们存储数据的模式也是各不相同的,简略来说,汇合就是一个放数据容器,它次要包含 Collection 和 Map 汇合,汇合只能寄存对象,Java 汇合类寄存于 java.util 包中,Java 中每一种根本数据类型都有对应的援用类型。例如在汇合中存储一个 int 型数据时,要先主动转换成 Integer 类后再存入。

那么针对单列汇合 Conllection 和双列汇合 Map 它们各自又有什么不同的特点呢?大家能够参考之前的答复(比拟具体),这里给大家简略总结,大家简略看看:

综合以上对汇合的理解大家当初也能总结进去数组和汇合到底有什么区别了吧!

1. 数组是动态的,有固定大小,且创立之后无奈扭转;而汇合是能够动静扩容的,能够依据须要动静扭转大小。如果要存储根本数据类型,并且也有固定的个数,如果元素个数是固定的,举荐用数组如果元素个数不是固定的,举荐用汇合,因为数组的长度是固定的(数组是动态的,一个数组实例具备固定大小,一旦创立,无奈扭转),汇合长度是能够扭转的(依据须要动静扭转大小,而且汇合提供了更多的成员办法,能够满足更多的需要),简略来说,元素个数固定,举荐应用数组,若元素个数不固定,举荐应用汇合。

2. 数组既能够存储根本数据类型,又能够存储援用数据类型(根本数据类型存储的是值,援用数据类型存储的是地址值);汇合只能存储援用数据类型(也就是对象),汇合中也能够存储根本数据类型,然而在存储的时候会主动装箱(JDK1.5 新个性)变成对象。

3. 数组和汇合都是 java 中的容器,然而数组申明了它包容的元素类型,而汇合不申明。

4. 数组是 java 语言内置的数据类型,是线性排列的数组,所以能够快速访问元素,正因为数组有这样的长处,大家能够看到很多汇合的底层构造就是数组。

5. 应用场景不同,数组个别应用在数据长度固定的状况,并且次要进行的是数据的查找操作。而汇合个别是用在须要同时存储具备一对一关系的数据,也就是保留键值对数据的状况下,都是应用汇合,并且在解决数据反复问题的时候就能够间接应用 Set 汇合解决这个问题(Set 汇合的特点是元素惟一,且不可反复)。

6. 咱们在定义数组的时候必须指定数组元素的类型,然而汇合如果不定义的话就默认所有的元素都是 Object(Object 类是所有类的父类)。

7. 咱们无奈间接获取数组中理论存储的元素个数,应用 length()也只能获取数组的长度,然而汇合能够间接用 size()间接获取汇合中理论存储的元素个数。

8. 汇合有多种实现形式和不同的实用场合,比方:List、Set、Map 等,然而数组只采纳调配间断的空间形式。

而且汇合以接口和类的模式存在,具备封装、继承、多态等对于类的特点,所以通过办法和属性的调用就能够实现一些各种简单的操作,这样能够无效的进步软件的开发效率。

好啦,以上就是针对这个问题的一些介绍,离开做了介绍,也给大家做了总结,大家能够参考利用哦,也祝各位筹备面试的宝子们,年后面试顺利!

退出移动版