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

java中集合和数组有什么区别?

发布网友 发布时间:2022-05-01 00:45

我来回答

5个回答

热心网友 时间:2022-06-21 12:11

数组是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)。

热心网友 时间:2022-06-21 12:11

你可以根据数组与几何的定义去理解:
数组其实是一个特殊的集合,数组是相同数据类型的数据的集合,每一个数组都有一定的长度,
而集合是不受这些条件的*的,另外,数组中的元素可以相同,而集合中的元素不能相同,即集合中元素具有互异性

热心网友 时间:2022-06-21 12:12

数组通常是不可变长的
比如int[5],定义成5位,就不能修改了,除非重新定义一个数组,并把旧数组复制过来
集合是可以通过add,remove等方法任意添加删除元素
另外就是存储在内存里的方式也有所不同

热心网友 时间:2022-06-21 12:12

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

热心网友 时间:2022-06-21 12:13

集合是动态数组,内部也是一个数组,不过内存不足时会内部调整大小,让你察觉不了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
RDL是什么意思 报税软件是什么意思 某公司的财务报表管理软件属于 报表系统指的是什么? 怎么玩真三最好?我是新手选什么英雄最好? 真三新手玩什么英雄好? 最近玩魔兽真三,想请问一下高手,初期用什么英雄最好,新手攻略 新手玩真三选什么英雄好啊 ...离泡还有一段距离的地方好几片红,红的地方又疼又痒的,怎么办... 眼角出了好多小水疱.医生说是疱疹.怎么办 Java集合 这个“集合”概念体现在哪里的? 我的爸爸真的是他吗? 李嘉成的儿子,听说他一夜间拥有了他爸爸爸一辈子的财富…这是真的吗? JAVA 中集合和组合是一个意思么? 闪亮的爸爸里面的孩子是自己真的是那些明星的孩子们 殷世航直播时的爸爸是请的演员,对于他真的父亲来说是一种伤害吗? 不能说的秘密这部电影是周杰伦写的吗?电影里的那个爸爸是真的周杰伦爸爸吗 java中容器和集合是一个概念吗? 女儿真的是爸爸上辈子的情人吗 章子怡的女儿长大了,她的五官气质出众。你觉得是遗传谁的基因呢? 听说金星爸爸被金星气死的真的吗 《摔跤吧,爸爸》中国家队教练是真的吗? 附近哪有买观赏鱼 儿子:爸爸,这个世界上真的有鬼吗? 爸爸:没有啊,儿子,怎么了? 儿子:咱们家保姆说这世界上有鬼。 汕头市哪里有卖鱼? 最近网上疯传的一段视频爸爸一屁股坐死了孩子是真的吗? 深圳公明天虹附近哪里有水族馆?卖观赏鱼的 好爸爸和阿青的故事是真的吗 项目办公室的概念? 谁知道深圳市罗湖区东门商业区那里那个位置有水族馆卖鱼的? 什么是Java中集合类 上海静安投资有限公司怎么样? 上海静安投资咨询服务有限公司怎么样? 上海静安地铁投资有限公司怎么样? 上海新静安(集团)有限公司怎么样? 漫画老师习作写老师性格严肃温和怎么写? 上海中静安银投资有限公司怎么样? 北京恒昌汇财投资管理有限公司上海静安分公司怎么样? 上海静安建筑装饰实业股份有限公司怎么样? 网吧的上网卡怎么办啊 上海静安悦诚资产管理有限公司怎么样? 上网卡怎么办 上海静安市政工程有限公司怎么样? 电脑上网卡了怎么办? 上海静安城建配套发展有限公司怎么样? 网卡怎么办~急~~ 上海静安轨道交通发展有限公司怎么样? 简版征信显示关注吗 工程投标担保期限是多久? 日本动漫金发的人物男的有哪些(动画片的名字也要)