问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java里的数组和集合的区别是什么?

发布网友 发布时间:2022-04-25 18:37

我来回答

5个回答

热心网友 时间:2023-10-24 00:10

数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素。但是速度是要有代价的,当你创建了一个数组之后,它的容量就固定了,而且在其生命周期里是不能改变的。还有一点,JAVA里面的数组是会做边界检查的,所以当你越界访问时,会抛出RuntimeException,所以不用担心在C或C++因为不做边界检查而出现的问题了,当然边界检查是以牺牲效率为代价的。数组与其它容器类的区别体现在三个方面:效率、类型识别和可以持有primitives。
JAVA里面提供的其他容器还包括List,Set和Map。他们处理对象的时候就好像这些这些对象都没有自己的类型一样,容器将它所含的元素都看成是JAVA中所有类的根类Object类型的,这样我们只需创建一种容器,就能把所有的类型的对象全部放进去。但是当取出的时候,那就需要我们自己进行类型转换了,不过在JAVA Tiger版里面新引入了“泛型”的概念,结合容器类一起使用就可以解决类型转换的问题,关于“泛型”这就不详细讲解了。从上面的角度来看,这种做法很不错,但是就是苦了primitives,如果是常量的话,可以把primitive转换成wrapper类然后放进容器里面,如果是变量的话,那就只能放在你自己的类里了。与其他容器类相比,数组会在编译的时候作类型检查,从而防止你插入错误类型的对象,或者在提取对象的时候把对象的类型给搞错了,JAVA在编译和运行的时候都能阻止你将一个不恰当的消息传给对象。至于效率,数组无疑是要高于其他容器类的,因为有些容器类的实现就是基于数组的,比如ArrayList。不论从类型检查还是效率的角度来考虑,我们首选数组来作为容器都是没错的,但是数组的缺点就是功能太弱了,所以才会有容器类的出现。
要多说几句的就是,java.util包里面有一个Arrays类,它包括了一组可以用于数组的static的工具方法,其中最基本的是四个方法:用来比较两个数组是否相等的equals();用来填充数组的fill();用来对数组进行排序的sort();以及用于在一个已经排序的数组中查找元素的binarySearch()。所有这些方法都对primitives和Object进行了重载。此外还有一个asList()方法,它接受一个数组,然后把它转成一个List容器。JAVA标准类库还提供了一个System.arraycopy()的静态方法,它能以较快的速度拷贝数组,对primitive和Object都进行了重载,但是注意当对Object数组进行拷贝时,进行的是浅拷贝(shallow copy)。

热心网友 时间:2023-10-24 00:11

集合一般指集合类,如List,Map等;有单项列表型存储的,也有双响列表型存储的,一般存储对象。数组时java中定义的基本数据存储类型,一般存储基本数据类型。

热心网友 时间:2023-10-24 00:11

集合其实是包含了数组,集合可以是list,map,array等。
而数组
属于集合的一种,数组一般是同类的一个组合,如int[],string[],object[]等。

热心网友 时间:2023-10-24 00:12

其实集合也算数组,只是功能更丰富。二者最根本的区别就是数组长度不可变,集合长度可变。另外,如果你看了源代码就会发现,集合的基础其实是数组。

热心网友 时间:2023-10-24 00:12

在JAVA中将一个数组转换为一个集合java.util.Arrays

Student[] stus = new Student[10];

ArrayList list = new ArrayList();

list = listArrays.asList(stus);

这样就可以把数组stus转换为List了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 养宠物的人遵守规则,是不是就能和别人平安相处呢? 企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 java 中数组和集合的区别 java的类集合的区别 Java中数组和集合的区别 手机用什么软件才能连接carplay 有没有支持carplay 别的地图软件 自己换机油怎么换? 什么浏览器支持CarPlay 换机油的正确方法? 怎么在家自己换机油? 汽车机油自己换怎么换呢? 去4S店里换机油太贵,自己换机油的好方法有没有呢? 自己如何换机油 自己可以换机油吗?该怎么做? 自己怎么换机油,换机油前需不需要先热车? 自己换机油的好方法有哪些?买哪种机油换动力提升更好? 自己动手的话怎么换机油? 自己换机油的好方法图 自己在家里动手换机油怎么换? 如何卸载visual studio2008 Microsoft visual studio 2010卸载不掉怎么破? Java中集合类的区别,请高手详解 淘宝用户会员名可以更改吗? JAVA中集合的由来,以及集合和数组的区别 Java集合和数组的区别介绍 Java 中集合和数组 的区别 有没有谁知道JAVA中的一些集合类的区别,我看怎么用发都差不多,那在什么地方要用什么集合类呢! 在Java中数组和集合的主要区别 请问Java中的容器类与集合有什么区别? 学习方式有很多种,学习方式有哪些? 学习有哪些方法 怎样将PPT文档做成电子杂志 方法加有哪些适合小学生的学习方法? 如何用PPT制作电子杂志 电子杂志制作用什么软件好 学生有什么好的学习方法? 如何用PPT制作电子期刊? 促进学生学习的方法有哪些 怎么做杂志 PPT可不可以做成电子杂志样的?电子杂志怎么做?? 万能 的 拼音 是