常用算法及容器(java)

Java Vector 类

Vector 类实现了一个动态数组。和 ArrayList 很相似,但是两者是不同的:

  • Vector 是同步访问的。
  • Vector 包含了许多传统的方法,这些方法不属于集合框架。

Vector 类支持 4 种构造方法。

1:   Vector()

2:   Vector(int size)

3:   Vector(int size,int incr)

4:   Vector(Collection c)

序号方法描述
1void add(int index, Object element) 
 在此向量的指定位置插入指定的元素。
2boolean add(Object o) 
 将指定元素添加到此向量的末尾。
3boolean addAll(Collection c) 
将指定 Collection 中的所有元素添加到此向量的末尾,按照指定 collection 的迭代器所返回的顺序添加这些元素。
4boolean addAll(int index, Collection c) 
在指定位置将指定 Collection 中的所有元素插入到此向量中。
5void addElement(Object obj) 
 将指定的组件添加到此向量的末尾,将其大小增加 1。
6int capacity() 
返回此向量的当前容量。
7void clear() 
从此向量中移除所有元素。
8Object clone() 
返回向量的一个副本。
9boolean contains(Object elem) 
如果此向量包含指定的元素,则返回 true。
10boolean containsAll(Collection c) 
如果此向量包含指定 Collection 中的所有元素,则返回 true。
11void copyInto(Object[] anArray) 
 将此向量的组件复制到指定的数组中。
12Object elementAt(int index) 
返回指定索引处的组件。
13Enumeration elements() 
返回此向量的组件的枚举。
14void ensureCapacity(int minCapacity) 
增加此向量的容量(如有必要),以确保其至少能够保存最小容量参数指定的组件数。
15boolean equals(Object o) 
比较指定对象与此向量的相等性。
16Object firstElement() 
返回此向量的第一个组件(位于索引 0) 处的项)。
17Object get(int index) 
返回向量中指定位置的元素。
18int hashCode() 
返回此向量的哈希码值。
19int indexOf(Object elem) 
 返回此向量中第一次出现的指定元素的索引,如果此向量不包含该元素,则返回 -1。
20int indexOf(Object elem, int index) 
 返回此向量中第一次出现的指定元素的索引,从 index 处正向搜索,如果未找到该元素,则返回 -1。
21void insertElementAt(Object obj, int index) 
将指定对象作为此向量中的组件插入到指定的 index 处。
22boolean isEmpty() 
测试此向量是否不包含组件。
23Object lastElement() 
返回此向量的最后一个组件。
24int lastIndexOf(Object elem) 
 返回此向量中最后一次出现的指定元素的索引;如果此向量不包含该元素,则返回 -1。
25int lastIndexOf(Object elem, int index) 
返回此向量中最后一次出现的指定元素的索引,从 index 处逆向搜索,如果未找到该元素,则返回 -1。
26Object remove(int index) 
 移除此向量中指定位置的元素。
27boolean remove(Object o) 
移除此向量中指定元素的第一个匹配项,如果向量不包含该元素,则元素保持不变。
28boolean removeAll(Collection c) 
从此向量中移除包含在指定 Collection 中的所有元素。
29void removeAllElements() 
从此向量中移除全部组件,并将其大小设置为零。
30boolean removeElement(Object obj) 
从此向量中移除变量的第一个(索引最小的)匹配项。
31void removeElementAt(int index) 
删除指定索引处的组件。
32protected void removeRange(int fromIndex, int toIndex)
从此 List 中移除其索引位于 fromIndex(包括)与 toIndex(不包括)之间的所有元素。
33boolean retainAll(Collection c) 
在此向量中仅保留包含在指定 Collection 中的元素。
34Object set(int index, Object element)
 用指定的元素替换此向量中指定位置处的元素。
35void setElementAt(Object obj, int index) 
将此向量指定 index 处的组件设置为指定的对象。
36void setSize(int newSize) 
 设置此向量的大小。
37int size() 
 返回此向量中的组件数。
38List subList(int fromIndex, int toIndex) 
返回此 List 的部分视图,元素范围为从 fromIndex(包括)到 toIndex(不包括)。
39

Object[] toArray()
 返回一个数组,包含此向量中以恰当顺序存放的所有元素。

 

40Object[] toArray(Object[] a) 
返回一个数组,包含此向量中以恰当顺序存放的所有元素;返回数组的运行时类型为指定数组的类型。
41String toString() 
返回此向量的字符串表示形式,其中包含每个元素的 String 表示形式。
42void trimToSize() 
  对此向量的容量进行微调,使其等于向量的当前大小。

Java Stack 类

栈是Vector的一个子类,它实现了一个标准的后进先出的栈。

堆栈只定义了默认构造函数,用来创建一个空栈。 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。

Stack()

除了由Vector定义的所有方法,自己也定义了一些方法:

序号方法描述
1boolean empty() 
测试堆栈是否为空。
2Object peek( )
查看堆栈顶部的对象,但不从堆栈中移除它。
3Object pop( )
移除堆栈顶部的对象,并作为此函数的值返回该对象。
4Object push(Object element)
把项压入堆栈顶部。
5int search(Object element)
返回对象在堆栈中的位置,以 1 为基数。

Java Dictionary 类

Dictionary 类是一个抽象类,用来存储键/值对,作用和Map类相似。

给出键和值,你就可以将值存储在Dictionary对象中。一旦该值被存储,就可以通过它的键来获取它。所以和Map一样, Dictionary 也可以作为一个键/值对列表。

Dictionary定义的抽象方法如下表所示:

序号方法描述
1Enumeration elements( )
返回此 dictionary 中值的枚举。
2Object get(Object key)
返回此 dictionary 中该键所映射到的值。
3boolean isEmpty( )
测试此 dictionary 是否不存在从键到值的映射。
4Enumeration keys( )
返回此 dictionary 中的键的枚举。
5Object put(Object key, Object value)
将指定 key 映射到此 dictionary 中指定 value。
6Object remove(Object key)
从此 dictionary 中移除 key (及其相应的 value)。
7int size( )
返回此 dictionary 中条目(不同键)的数量。

Dictionary类已经过时了。在实际开发中,你可以实现Map接口来获取键/值的存储功能。

 

Java Hashtable 类

 


Hashtable是原始的java.util的一部分, 是一个Dictionary具体的实现 。

然而,Java 2 重构的Hashtable实现了Map接口,因此,Hashtable现在集成到了集合框架中。它和HashMap类很相似,但是它支持同步。

像HashMap一样,Hashtable在哈希表中存储键/值对。当使用一个哈希表,要指定用作键的对象,以及要链接到该键的值。

然后,该键经过哈希处理,所得到的散列码被用作存储在该表中值的索引。

Hashtable定义了四个构造方法。第一个是默认构造方法:

Hashtable()

第二个构造函数创建指定大小的哈希表:

Hashtable(int size)

第三个构造方法创建了一个指定大小的哈希表,并且通过fillRatio指定填充比例。

填充比例必须介于0.0和1.0之间,它决定了哈希表在重新调整大小之前的充满程度:

Hashtable(int size,float fillRatio)

第四个构造方法创建了一个以M中元素为初始化元素的哈希表。

哈希表的容量被设置为M的两倍。

Hashtable(Map m)

Hashtable中除了从Map接口中定义的方法外,还定义了以下方法:

序号方法描述
1void clear( )
 将此哈希表清空,使其不包含任何键。
2Object clone( )
创建此哈希表的浅表副本。
3boolean contains(Object value)
 测试此映射表中是否存在与指定值关联的键。
4boolean containsKey(Object key)
测试指定对象是否为此哈希表中的键。
5boolean containsValue(Object value)
如果此 Hashtable 将一个或多个键映射到此值,则返回 true。
6Enumeration elements( )
返回此哈希表中的值的枚举。
7Object get(Object key)
 返回指定键所映射到的值,如果此映射不包含此键的映射,则返回 null. 更确切地讲,如果此映射包含满足 (key.equals(k)) 的从键 k 到值 v 的映射,则此方法返回 v;否则,返回 null。
8boolean isEmpty( )
测试此哈希表是否没有键映射到值。
9Enumeration keys( )
 返回此哈希表中的键的枚举。
10Object put(Object key, Object value)
将指定 key 映射到此哈希表中的指定 value。
11void rehash( )
增加此哈希表的容量并在内部对其进行重组,以便更有效地容纳和访问其元素。
12Object remove(Object key)
从哈希表中移除该键及其相应的值。
13int size( )
 返回此哈希表中的键的数量。
14String toString( )
返回此 Hashtable 对象的字符串表示形式,其形式为 ASCII 字符 ", " (逗号加空格)分隔开的、括在括号中的一组条目。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值