Java—java编程集合的比较

来源:互联网 发布:h3cne模拟考试软件 编辑:程序博客网 时间:2024/05/26 12:00
1.Lisk集合类 与 Map集合类的区别:


List没有键值,Map有键值。


键值为了唯一标识事物而单独添加的属性
一定不要用事物本身的属性来做键值




2.ArrayList和Vector的区别与HashMap和Hashtable的区别相同
他们是:
ArrayList和HashMap都是线程异步的,所以特点是:效率高,但是安全性低


Vector和Hashtable都是线程同步的,所以特点是:效率低,但是安全性高








arrayList和LinkList的特性
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,


而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。




hashmap与hashtable的区别


1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;


2.而HashMap中的方法在缺省情况下是非同步的,Hashtable中的方法是同步的。即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个静态方法得到解决:
Map Collections.synchronizedMap(Map m)
这个方法返回一个同步的Map,这个Map封装了底层的HashMap的所有方法,使得底层的HashMap即使是在多线程的环境中也是安全的。


3.在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。 


4.其底层的实现机制不同,hashmap的访问速度要快于hashtable,因为它不需要进行同步检验,建议在非多线程环境中使用hashmap代替hashtable .

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 被电焊光伤了眼怎么办 被弧光闪了眼睛怎么办 乌龟下面壳烂了怎么办 小孩卵圆孔未闭合该怎么办 刚辞职又后悔了怎么办 隼羽头饰卖了怎么办 u盘变成只读了怎么办 小孩被蟑螂咬了怎么办 被蟑螂咬出血了怎么办 多肉植物张长了怎么办 蟹爪莲叶子蔫了怎么办 混沌与秩序2延迟怎么办 混沌与秩序2脸书怎么办 ios炉石传说卡门怎么办 狗狗对主人低吼怎么办 吹雪之松锦徒长怎么办 武装突袭被禁了怎么办 眼球小血管破了怎么办 眼睛白眼球破了怎么办 打拳击手腕伤了怎么办 上眼皮进东西了怎么办 眼睛进了异物怎么办妙招 眼睛毛血管破了怎么办 怪物猎人x钱不够怎么办 小米2开不了机怎么办 3ds更新系统不动怎么办 u盘中病毒了怎么办 aj5白银前面皱了怎么办 狗吃了巧克力该怎么办 孩子零食吃多了怎么办 上学时月经侧漏怎么办 漏电被电的脚肿怎么办 走路有尿溢出来怎么办 篮球气嘴漏气了怎么办 暗线插座盒坏了怎么办 焊过电焊眼睛疼怎么办 烧电焊后眼睛痛怎么办? 焊完电焊眼睛疼怎么办 烧电焊后眼睛痛怎么办 用电焊后眼睛痛怎么办 看电焊后眼睛痛怎么办