`
peonyzzdx
  • 浏览: 583092 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

需要记忆的

 
阅读更多
1.ArrayList和Vector的区别,
答:就ArrayList与Vector主要从二方面来说.
一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
就HashMap与HashTable主要从三方面来说。
三.效率上arraylist 高于vector


HashMap和Hashtable的区别
一、HashMap是Java 1.2引进的Map接口的一个实现,Hashtable是Dictionary(抽象类)的直接子类,也实现了Map接口
二、同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的,由于HashMap是异步的,效率上可能高于Hashtable。
Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
三、值:HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
四、hashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。



19.HashMap和Hashtable的区别。
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口

1.HashMap是Hashtable的轻量级实现(非线程安全的实现),都完成了Map接口
  2.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
  3.hashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
  4.HashMap的方法不是Synchronize的,而Hashtable是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
  5.HashMap由于非线程安全,效率上可能高于Hashtable。
  Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。



//Entry是一个键值对对象,包含一个key和一个value,他是Map接口中定义的内部接口(Map.Entry)
用 null 做 key 其实是HashMap中定义了一个 NULL_KEY (Object NULL_KEY=new Object(); 其实就是个Object对象) 来替代null作为 key,
也就是说你 map.put(null,value) 的时候,HashMap实际上会用 NULL_KEY 作为 key,
当你调用 map.get(null) 的时候,HashMap也会用 NULL_KEY 来作为 key 返回数据//


2.说出ArrayList,Vector, LinkedList的存储性能和特性
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics