欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LinkedList, ArrayList,Vector 区别 hashmap和hashtable区别

程序员文章站 2022-06-16 23:38:42
...

hashmap和hashtable的区别:

1.hashmap允许键值为null,hashtable不允许键值为null(编译期正常,运行时报异常)

2.hashmap不是线程安全的,hashtable是线程安全的  (具体原因还是没明白,源代码竟然看不懂)

3.hashmap取键值hashmap.getKeySet(),set取数据是用的Iterator,hashtable用的是Enumeration。

4.由于hashmap不是线程安全的,所以速度比hashtable快。

 

 Hashtable hashtable=new Hashtable();
	   hashtable.put("a", "abound");
	   hashtable.put("b", "bus");
	   hashtable.put("c", "class");
	
	   Enumeration e=hashtable.keys();
	   for(;e.hasMoreElements();){
		  Object object=e.nextElement();
		  System.out.println(object);
		   
	   }
	   System.out.println("");
	   Set set=hashtable.keySet();
	   for(Iterator it=set.iterator();it.hasNext();){
		    Object obj= it.next();
		    System.out.println(obj);
		   
	   }
	

结果是一样的。

 

LinkedList 和 ArrayList的区别:

1.Linkedlist是增删比较简单,访问时比较慢,如果在最后面追加,要比arraylist麻烦一点,因为LinkedList需要记录前后元素,而ArrayList只是追加值,如果在中间插入的话,LinkedList要比ArrayList快,因为LinkedList只用在此位置加入这个值,然后与前后元素关联。而ArrayList插入的话,需要将此位置的元素都向后挪动。删除原则是一样的。

2.linkedList是双向链表,而ArrayList实现方式是数组。

3.他们都实现List接口

 

 

ArrayList与Vector的区别:

1.Vector也实现了List接口,和ArrayList的区别是Vector实现了线程同步,结构和arrayList几乎一样,Vector速度要慢一些。