乐趣区

关于java:集合和数组的区别

一:

1. 数组当中既能够存储“根本数据类型”的数据,也能够存储“援用数据类型”的数据(数组既能够存储根本数据类型,又能够存储援用数据类型,根本数据类型存储的是值,援用数据类型存储的是内存地址值)2. 数组是有对应的类,这个类是在 JVM 运行时创立的,所以没有对应的 class 文件;(通过数组创立语法 int[] a = {1, 100, 10, 20}; 可看出,无奈查看 数组类,以及源码);数组的父类是 Object

3. 数组在内存方面存储的时候,内存地址间断。这是数组存储元素的特点(特色)。数组实际上是一种简略的数据结构。

汇合:

List,继承 Collection,可反复、有序的对象

Set,继承 Collection,不可反复、无序的对象

Map,键值对,提供 key 到 value 的映射。key 无序、惟一;value 无序,可反复

1、汇合类结构图

2、汇合个性比拟

线程平安的效率都比拟低,Vector,已被淘汰,可应用 ArrayList 代替。Hashtable,已被淘汰,可应用 HashMap 代替,如果是高并发的线程平安的实现,举荐应用 ConcurrentHashMap。
三、数组与汇合区别
(一)汇合的由来
数组长度是固定的,当增加的元素超过了数组的长度时须要对数组从新定义,这样太过繁琐!

因而,Java 外部给咱们提供了汇合类,能存储任意对象,长度是能够扭转的,随着元素的减少而

减少,随着元素的缩小而缩小

(二)区别
1、数组既能够存储根本数据类型,又能够存储援用数据类型(根本数据类型存储的是值,援用数

据类型存储的是地址值)

汇合只能存储援用数据类型(对象),汇合中也能够存储根本数据类型,然而在存储的时候会主动装箱(JDK1.5 新个性)变成对象

2、数组的长度是固定的,汇合长度是能够扭转的

3、定义数组时必须指定数组元素类型,汇合默认其中所有元素都是 Object

4、无奈间接获取数组理论存储的元素个数,length 用来获取数组的长度,但能够通过 size()间接获取汇合理论存储的元素个数

5、汇合有多种实现形式和不同的实用场合,如 List,Set,Map 等;而不像数组仅采纳调配间断的空间形式

6、汇合以接口和类的模式存在,具备封装,继承和多态等类的个性,通过简略的办法和属性调用即可实现各种简单的操作,大大提高软件的开发效率。
(三)应用状况:
1、如果元素个数是固定的,举荐用数组

2、如果元素个数不是固定的,举荐用汇合

退出移动版