单例集合体系:
---------| collection 单例集合的根接口
--------------| List 如果实现了list接口的集合类,具备的特点:有序,可重复 注:集合中的有序不是指自然顺序,而是指添加进去的顺序与出来的顺序是一致的
------------------| ArrayList ArrayList底层维护了一个object数组的实现的。(线程不安全),特点:查询速度快,增删速度慢。(有序,可重复)
------------------| LinkedList LinkedList底层是使用链表结构实现的,线程不安全,特点:查询速度慢,增删速度快。(有序,可重复)
------------------| Vector(了解即可) 底层也是维护一个Object数组的实现的,实现与ArrayList是一样的,但是Vector是线程安全的,操作效率低
--------------| Set 如果实现了set接口的集合类,具备的特点:无序,不可重复 注:集合中的无序不是指自然顺序,而是指添加元素进去的顺序与元素出来的顺序是不一致的
------------------| HashSet 底层是用于一个哈希表支持的。线程不安全,特点:存储速度块
------------------| TreeSet 底层是使用红黑树(二叉树)数据结构实现的,线程不同步(即线程不安全),不能在多线程*享,但可以使用synchroinzedMap()方法来实现同步。特点:会对元素进行排序存储(按自然顺序)
双例集合体系:
----------| Map 双例集合的根接口。如果是实现了Map接口的集合类,具备的特点:存储的数据都是以键值对形式存在的,键不可重复,值可以重复
--------------| HashMap 底层是基于哈希表实现的,HashMap允许键和值为null,线程不安全,特点:存储速度块
--------------| TreeMap 基于红黑数(二叉树)数据结构实现的,线程不同步(即线程不安全),特点:会对元素经行排序存储
--------------| HashTable(了解即可) 线程安全
1、Vector 集合
笔试题:ArrayList与Vector的区别
相同点:ArrayList与Vector底层都是使用Object数组实现的.
不同点:
.ArrayList是线程不同步的,操作效率高;Vector是线程同步的,操作效率低
.ArrayList是jdk1.2出现的,Vector是jdk1.0出现的
2、实例
package com.dhb.collection; import java.util.Enumeration;
import java.util.Vector; /**
* @author DSHORE / 2018-5-17
*
*/
// addElement(E obj):将指定的组件添加到此向量的末尾,将其大小增加1。 public class Demo10 {
public static void main(String[] args) {
Vector<String> v=new Vector<String>();
//添加集合
v.addElement("张三");
v.addElement("李四");
v.addElement("王武");
//迭代集合
Enumeration<String> e=v.elements();//获取迭代器
while(e.hasMoreElements()){
System.out.println(e.nextElement());
/*运行结果:
* 张三
* 李四
* 王武
* */
}
}
}
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:http://www.cnblogs.com/dshore123/p/9052290.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |