数组集合区别

1.ArrayList  是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。适合随机查找和遍历,不适合插入和删除。

2.Vector  与ArrayList一样,不同的是它支持线程的同步,即某一时刻只有一个线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢。Vector提供indexOf(obj, start)接口,ArrayList没有。Vector属于线程安全级别的,线程安全需要更大的系统开销。

3.LinkedList 是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。还提供了List接口中没有定义的方法,专门用于操作表头和表尾元素,可以当作堆栈、队列和双向队列使用。

4.HashMap  hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。HashMap不是线程安全的。HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。HashMap中hash数组的默认大小是16,而且一定是2的指数。HashMap实现的是Map接口。

5.HashTable  HashTable是线程安全的一个Collection。HashTable中hash数组默认大小是11,增加的方式是 old*2+1。而HashTable实现的是Set接口。

6.List  元素有放入顺序,元素可重复。List接口有三个实现类:LinkedList,ArrayList,Vector。

7.Map  元素按键值对存储,无放入顺序,键不可重复,值可以重复。Map接口有三个实现类:HashMap,HashTable,LinkeHashMap。

8.Set  元素无放入顺序,元素不可重复。

时间: 2024-10-14 20:42:01

数组集合区别的相关文章

集合和数组的区别

集合和数组的区别? *                     1)长度的区别: *                         数组:长度是固定的 *                         集合:长度是可变的 *                     2)内容的区别: *                         数组存储的是同一种类型的元素:举例:水杯中的水 *                         集合存储的是不同类型的元素:举例:杯子:加水,加可乐; *

集合 和 数组 的区别

集合框架 包含三块内容 对外的接口 ,接口的实现和对集合运算的算法. 一 集合 和数组的区别: 1.数组声明元素的类型,而集合不声明. 2.数组声明之后有固定的大小.一旦生成无法改变.而集合是可以改变大小的, 集合提供了更多的成员方法,能满足更多的需求. 3.数组无论是效率还是检查类型都是最好的. 数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素. 4.数组是大小固定的,一旦创建无法扩容:集合大小不固定. 5.数组的存放类型只能是一种,集合的存放类型可不是一种

Java基础知识强化之集合框架笔记01:集合的由来与数组的区别

1. 集合的由来: 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储.而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的知识里面,有哪些是容器类型的呢?数组和StringBuffer.但是呢?StringBuffer的结果是一个字符串,不一定满足我们的要求,所以我们只能选择数组,这就是对象数组.而对象数组又不能适应变化的需求,因为数组的长度是固定的,这个时候,为了适应变化的需求

集合框架之数组集合算法

如何检测程序的健康程度? 如果想要知道程序运行所占的CPU和内存的情况可以使用飞行器,这样就可以知道程序的稳定性了.在JDK的bin目录下可以找到飞行器.如下图: 数组集合算法: 1.数组与集合的区别和联系: 数组是有限存储(规定了数组长度就只能存储那么多值),而集合是无限存储,但其实集合也是由数组做成的. 2.数组集合算法的原理: 当向集合里面存储一个值时,集合里面会为其申请一个适当长度的数组来存储,第二次存储值时,如果数组的长度不足以存储第二次的值,就重新申请一个长一点的数组,先把原来的数组

Java/C++中数组的区别

1. 数组名区别 -------------------------------------- 1. java中不用说,本着一切皆对象的原则,所以java中的数组也是对象.那么数组类是哪个,当然不是java.util.Arrays.详见Java数组方法的思考 2. 而在c++中数组名其实是一种数据结构,有人会说不是指针吗,关于这一点见(C++中数组名其实是一种数据结构). 从上面两点中我们可以看出java数组名是对象,而c++数组名是数据结构.那么有人又会问对象和数据结构又有什么区别呢?详见数据

数组指针和指针数组的区别

数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的长度. 如要将二维数组赋给一指针,应这样赋值: int a[3][4]; int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组. p=a;        //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0] p++;       //该语句执行过后,也就是

数组集合删除算法

数组集合删除算法: 删除: /** * 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com * @author 小沫 */ public void remove(int index){ //objs的长度如果小于0或对象值小于等于0那么抛出数组越界异常 if(objs.length<0||this.index.0){ throw new IndexOutOfBoundsException(); } if(this.index-1==index){ //当前对象的是所占长度-1等

数组集合添加算法

集合是无限存储的容器: 数组集合采用的算法是一开始先开辟好有限的空间进行存储放进来的数据. 等需要再次存放数据的时候,再去开辟一块比原来的空间多的容量之前,老的数据导入进新开辟的空间,然后再把新进来的数据放进空间里,依次这样进行开辟导入就形成了无限的容器.这就是数组集合的算法.  在java源码里面,采用的导入方式是直接调用本地系统语言来直接导入数据,这样提高了效率,一万毫秒才能完成的事情也许四千毫秒就执行完毕. 取消for循环导入使用System.arraycopy如下代码: /** * 更多

JavaScript中的数组与伪数组的区别

在JavaScript中,除了5种原始数据类型之外,其他所有的都是对象,包括函数(Function). 5种原始数据类型: number boolean string null undefined 在这个前提下,咱们再来讨论JavaScript的对象. 1.创建对象 var obj = {}; //种方式创建对象,被称之为对象直接量(Object Literal) var obj = new Object(); // 创建一个空对象,和{}一样 更多创建对象的知识,参见<JavaScript权威