Java中各种常用数据结构的使用(Vector、Stack、LinkedList)

一、Vector

1.1Vector的介绍

Vector 是矢量队列,继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。

Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建Vector 后进行添加或移除项的操作。 

Vector 继承了AbstractList,实现了List;所以,它是一个队列,支持相关的添加、删除、修改、遍历等功能。
Vector 实现了RandmoAccess接口,即提供了随机访问功能。RandmoAccess是java中用来被List实现,为List提供快速访问功能的。在Vector中,我们即可以通过元素的序号快速获取元素对象;这就是快速随机访问。
Vector 实现了Cloneable接口,即实现clone()函数。它能被克隆。
和ArrayList不同,Vector中的操作是线程安全的。

1.2Vector的字段及构造函数

protected  int capacityIncrement 
          向量的大小大于其容量时,容量自动增加的量。 
protected  int elementCount 
          Vector 对象中的有效组件数。 
protected  Object[] elementData 
          存储向量组件的数组缓冲区。 

Vector共有4个构造函数
// 默认构造函数
Vector()

// capacity是Vector的默认容量大小。当由于增加数据导致容量增加时,每次容量会增加一倍。
Vector(int capacity)

// capacity是Vector的默认容量大小,capacityIncrement是每次Vector容量增加时的增量值。
Vector(int capacity, int capacityIncrement)

// 创建一个包含collection的Vector
Vector(Collection<? extends E> collection)
1.3Vector的常用方法

 boolean add(E e) 
          将指定元素添加到此向量的末尾。 
 void add(int index, E element) 
          在此向量的指定位置插入指定的元素。 
 boolean addAll(Collection<? extends E> c) 
          将指定 Collection 中的所有元素添加到此向量的末尾,按照指定 collection 的迭代器所返回的顺序添加这些元素。 
 boolean addAll(int index, Collection<? extends E> c) 
          在指定位置将指定 Collection 中的所有元素插入到此向量中。 
 void addElement(E obj) 
          将指定的组件添加到此向量的末尾,将其大小增加 1。 
 int capacity() 
          返回此向量的当前容量。 
 void clear() 
          从此向量中移除所有元素。 
 boolean contains(Object o) 
          如果此向量包含指定的元素,则返回 true。 
 boolean containsAll(Collection<?> c) 
          如果此向量包含指定 Collection 中的所有元素,则返回 true。  
 E firstElement() 
          返回此向量的第一个组件(位于索引 0) 处的项)。 
 E get(int index) 
          返回向量中指定位置的元素。 
 boolean isEmpty() 
          测试此向量是否不包含组件。 
 E lastElement() 
          返回此向量的最后一个组件。 
 int lastIndexOf(Object o) 
          返回此向量中最后一次出现的指定元素的索引;如果此向量不包含该元素,则返回 -1。 
 int lastIndexOf(Object o, int index) 
          返回此向量中最后一次出现的指定元素的索引,从 index 处逆向搜索,如果未找到该元素,则返回 -1。 
 E remove(int index) 
          移除此向量中指定位置的元素。 
 boolean remove(Object o) 
          移除此向量中指定元素的第一个匹配项,如果向量不包含该元素,则元素保持不变。 
 boolean removeAll(Collection<?> c) 
          从此向量中移除包含在指定 Collection 中的所有元素。 
 void removeAllElements() 
          从此向量中移除全部组件,并将其大小设置为零。 
 boolean removeElement(Object obj) 
          从此向量中移除变量的第一个(索引最小的)匹配项。 
 void removeElementAt(int index) 
          删除指定索引处的组件。 
 E set(int index, E element) 
          用指定的元素替换此向量中指定位置处的元素。 
 void setElementAt(E obj, int index) 
          将此向量指定 index 处的组件设置为指定的对象。 

二、Stack

2.1Stack的介绍

Stack 类表示后进先出(LIFO)的对象堆栈。它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈。它提供了通常的 pushpop 操作,以及取堆栈顶点的 peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到堆栈顶距离的 search 方法。 

2.2Stack的常用方法

 boolean empty() 
          测试堆栈是否为空。 
 E peek() 
          查看堆栈顶部的对象,但不从堆栈中移除它。 
 E pop() 
          移除堆栈顶部的对象,并作为此函数的值返回该对象。 
 E push(E item) 
          把项压入堆栈顶部。 
 int search(Object o) 
          返回对象在堆栈中的位置,以 1 为基数。 

三、LinkedList


除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾getremoveinsert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列双端队列

此类实现 Deque 接口,为 addpoll 提供先进先出队列操作,以及其他堆栈和双端队列操作。

所有操作都是按照双重链接列表的需要执行的。在列表中编索引的操作将从开头或结尾遍历列表(从靠近指定索引的一端)。

注意,此实现不是同步的。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值