这个问题其实就是一个非常基础的面试题,一般面试官想了解你基础知识方面的掌握时,基本都会问这个问题,尤其是一些,计算机学子毕业之后,如果还是想要从事计算机技术相关的行业时,那么在面试的时候就需要做好充足的准备,因为结合自身考虑,大部分刚毕业的计算机专业的同学并没有相关的项目经验。

所以根据一般公司的面试环节,面试官会从:自身基础知识储备、项目经验、工作态度、个人能力等几个大方面入手,那么针对以上这几点,如果投递简历时,公司在审核简历时针对刚毕业的大学生简历,都会提前跟面试官沟通好,这个时候面试官就会直接跳过项目问题,简单直接的主要针对基础知识问题,会问的很多,所以,从事计算机行业,如果不想被淘汰,你就需要每天不断学习增加知识储备量。那么做好心理建设的朋友我们就继续来了解这个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等,但是数组只采用分配连续的空间方式。而且集合以接口和类的形式存在,具有封装、继承、多态等关于类的特点,所以通过方法和属性的调用就可以实现一些各种复杂的操作,这样可以有效的提高软件的开发效率。

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

数组与集合有什么不同之处相关推荐

  1. JAVA SE学习day_11:集合的相关应用、增强型for循环、foreach方法、数组与集合的相互转换

    一.集合的相关应用 1.1 将一个集合加到另一个集合上 boolean addAll(Collection c) 将给定集合中的所有元素添加到当前集合中.调用方法之后只要c1集合发生变化就返回true ...

  2. 【2023】Kotlin教程 第二篇 面向对象与函数式编程 第15章 数据容器——数组和集合 15.2 集合概述

    [2023]Kotlin教程 文章目录 [2023]Kotlin教程 第二篇 面向对象与函数式编程 第15章 数据容器--数组和集合 15.2 集合概述 第二篇 面向对象与函数式编程 第15章 数据容 ...

  3. java入门~第十六天 对象数组以及集合和相关数据结构

    1.对象数组 ​ 就是数组中的元素都是一个个的对象,但是并不是指对象本身,而是指的是对象的引用,即指向对象的那个指针,而这个指针是存放在虚拟机内存的栈中. ​ 对象数组的创建需要两个步骤: 1:创建一 ...

  4. Java基础之数组与集合

    Java基础之数组与集合 一.数组 二.冒泡排序算法 三.选择排序算法 四.二维数组 五.Arrays 工具 六.宠物管理系统 七.集合 Collection 八.List 九.重写 equals 方 ...

  5. 《C#精彩实例教程》小组阅读09 -- C#数组与集合

    本微信图文详细介绍了C#的数组与集合.

  6. c#sort升序还是降序_C#中对数组或集合进行升序或降序排序

    在.net framework中,数组和集合都实现了用于排序的方法sort(),数组通过调用Array.Sort(数组名)排序,集合通过调用 集合对象.Sort()方法排序. 默认的排序是使用升序排列 ...

  7. 转载--编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议60~64)

    阅读目录 建议60:性能考虑,数组是首选 建议61:若有必要,使用变长数组 建议62:警惕数组的浅拷贝 建议63:在明确的场景下,为集合指定初始容量 建议64:多种最值算法,适时选择 噢,它明白了,河 ...

  8. 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)...

    二维数组,锯齿数组和集合 一.二维数组 二维数组: 一维数组----豆角 二维数组----表格 定义: 1.一维数组: 数据类型[] 数组变量名 = new 数据类型[数组长度]; 数据类型[] 数组 ...

  9. 黑马程序员--数组与集合互相转变

    --------- android培训.java培训.期待与您交流! --------- 7 数组与集合的相互转变 7.1 数组转变成集合 1,为什么把数组转变成集合呢?有什么好处呢? 数组转变成集合 ...

最新文章

  1. MATLAB可以打开gms文件吗,GMS文件扩展名 - 什么是.gms以及如何打开? - ReviverSoft...
  2. R语言ggplot2可视化:为层次聚类树状图dendrogram中的簇进行着色、在树状图dendrogram中为不同的层次聚类簇配置不同的色彩
  3. bootstrap项目实例_精选开源SpringBoot项目:涵盖权限、搜索、秒杀、支付!值得学习...
  4. Android中的相对布局
  5. kindeditor图片上传 struts2实现
  6. 前端随笔整理[5.14]
  7. Trinotate-转录组注释
  8. 将一副完整的位图均分成n块位图显示
  9. 最短路计数(松弛操作处理)
  10. struts2+spring+hibernte整合示例
  11. 软件测试面试1--软件测试基础理论(持续更新中...)
  12. java工程师考华为证有用吗_华为初级认证网络工程师有什么用?大学生适合考吗?...
  13. 第九届蓝桥杯大赛个人赛决赛(CB软件类)真题
  14. C# 赛邮接口短信API验证demo
  15. 文件或目录损坏,详细教您文件或目录损坏且无法读取怎么办
  16. (入门、全面、通用)树莓派Raspbian系统安装配置,篇一
  17. 单声道蓝牙实现音乐播放
  18. 【Tableau 设计提示8.0】在 Tableau 中使用形状的 10 个技巧
  19. 顺序结构,选择结构和循环结构
  20. MATLAB | 两款粒子爱心 复刻《点燃我,温暖你》

热门文章

  1. 字串处理 expr在linux中是一个功能非常强大的命令。通过学习做一个小小的总结。
  2. 斐波那契(Fibonacci)迭代法求解函数极值(附代码)
  3. Mac小教程:MAC电脑中照片导出办法
  4. 2022年起重机司机(限桥式起重机)试题及在线模拟考试
  5. 达人评测 a380显卡相当于什么显卡
  6. RationalDMIS 检具的测量
  7. iOS开发关闭暗黑模式
  8. 学完平面设计没有工作过如何找工作
  9. 头歌Java实训答案——Java初体验
  10. C/C++程序设计题[2023-05-27]