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速度要慢一些。
推荐阅读
-
Java自学-集合框架 HashMap和Hashtable的区别
-
Java集合系列(二):ArrayList、LinkedList、Vector的使用方法及区别
-
ArrayList和LinkedList区别(蚂蚁金服面试题)
-
Java自学-集合框架 ArrayList和LinkedList的区别
-
ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和各自适应的场景是什么?
-
java中ArrayList、LinkedList、Vector的区别
-
深入理解ArrayList 和 LinkedList 区别
-
HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
-
vector和arraylist的区别面试题(教你保证多线程顺序执行)
-
Hashmap、Hashtable、Arraylist的区别