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

可以分别帮我举个简单的例子么?

数组是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)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-01-24
集合一般指集合类,如List,Map等;有单项列表型存储的,也有双响列表型存储的,一般存储对象。数组时java中定义的基本数据存储类型,一般存储基本数据类型。
第2个回答  2019-07-28
集合其实是包含了数组,集合可以是list,map,array等。
而数组
属于集合的一种,数组一般是同类的一个组合,如int[],string[],object[]等。
第3个回答  2018-01-29
其实集合也算数组,只是功能更丰富。二者最根本的区别就是数组长度不可变,集合长度可变。另外,如果你看了源代码就会发现,集合的基础其实是数组。
第4个回答  2013-09-23
在JAVA中将一个数组转换为一个集合java.util.Arrays

Student[] stus = new Student[10];

ArrayList list = new ArrayList();

list = listArrays.asList(stus);

这样就可以把数组stus转换为List了

数组与集合的区别?
一、主体不同 1、数组:是有序的元素序列。将有限个类型相同的变量的集合命名。2、集合:具有某种特定性质的具体的或抽象的对象汇总而成的集体。二、特点不同 1、数组:数组中的所有元素都具有相同类型。数组中的元素存储在一个连续性的内存块中,并通过索引来访问。2、集合:给定一个集合,任给一个...

数组与集合的区别
一、数组声明了它容纳的元素的类型,而集合不声明。二、数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。三、数组的存放的类型只能是一种(基本类型\/引用类型),集合存放的类型可以...

java语言中集合与数组的区别是什么?
对JAVA的集合的理解是相对于数组,区别:\\x0d\\x0a1)数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型\/引用类型)\\x0d\\x0a2)JAVA集合可以存储和操作数目不固定的一组数据。\\x0d\\x0a 3)JAVA集合只能存放引用类型的的数据,不能存放基本数据类型;数组可以。\\x0d\\x0a(...

java中集合和数组有什么区别?
数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素。但是速度是要有代价的,当你创建了一个数组之后,它的容量就固定了,而且在其生命周期里是不能改变的。还有一点,JAVA里面的数组是会做边界检查的,所以当你越界访问时,会抛出RuntimeException,所以不用担心在C或C+...

JAVA里面set,map,list的区别是什么?(尽量详细)
数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型\/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。简单说下集合和数组的区别:(参考文章:《Thinking In Algorithm》03....

Java数组、集合和列表的使用与区别
Java集合框架的核心主要包括三种接口:List、Set和Map。List为有序、可重复的集合,通过索引访问元素,类似于数组,支持add、get、remove、clear等操作。List有ArrayList和LinkedList两个实现类。Set为无序且不重复的集合,继承自Collection接口,主要实现类有HashSet和TreeSet。HashSet利用哈希算法存取,存取...

java中集合里面的元素可以是数组吗
你好,是这样的.java的集合相当于是一个容器,他和数组不同.数组里面既可以放基本数据类型,也可以放对象类型,即引用类型.而集合里面只能放对象类型.而数组也属于对象,因此java中集合里面的元素是可以放数组的.写法:List<String[]> list = new ArrayList<String[]>();...

java中,数组既可以存放基本数据类型,又可以存放对象。为什么集合中存放...
首先你要清楚,java的底层是C,数组只能存放基本数据类型,这是目前不会改变的,数组是永远不可能存放对象的,你所谓的存放对象只不过是存放对象的引用,实质上,还是个整形数组;而集合分为ArrayList还有linkedList你应该知道,ArrayList的本质其实就是数组,存放的还是引用,而引用只不过在java中你可以叫做...

java中,数组可以存放基本数据类型,而集合就不行,集合中存放的必须是对象...
几个中也可以放基本类型数据啊 你不要因为集合范型不支持基本类型就不可以放 放是一样放的 范型只是多了一个类型检查 如果你初始化集合没有申明范型也是一样可以的 只是编译器会警告你。 你即使加了 也没关系 现在java支持自动装箱 拆箱 ...

java中,数组既可以存放基本数据类型,又可以存放对象。为什么集合中存放...
java中,数组既可以存放基本数据类型,又可以存放对象。为什么集合中存放的就必须是对象?求高人指点,谢谢!70的徒弟 | 浏览4961 次 |举报 我有更好的答案2018-03-31 最佳答案 集合里只能存放引用类型,若要存放基本类型只能存相对应的包装类原因是因为集合是泛型类,会有边界擦除,若在<>里指定类型就保留到你指定...

相似回答