Java 数据结构

Java工具包提供了强大的数据结构。在Java中的数据结构主要包括如下几种接口和类:html

  • 枚举(Enumeration)
  • 位集合(BitSet)
  • 向量(Vector)
  • 栈(Stack)
  • 字典(Dictionary)
  • 哈希表(Hashtable)
  • 属性(Properties)

以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collection),咱们后面再讨论。 java

枚举(Enumeration)

枚举(Enumeration)接口虽然它自己不属于数据结构,但它在其余数据结构的范畴里应用很广。 枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。数组

例如,枚举定义了一个叫nextElement 的方法,该方法用来获得一个包含多元素的数据结构的下一个元素。数据结构

Java Enumeration接口
Enumeration接口中定义了一些方法,经过这些方法能够枚举(一次得到一个)对象集合中的元素。
这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃,但在现代代码中已经被不多使用了。尽管如此,它仍是使用在诸如Vector和Properties这些传统类所定义的方法中,除此以外,还用在一些API类,而且在应用程序中也普遍被使用。 下表总结了一些Enumeration声明的方法:
序号	方法描述
1	boolean hasMoreElements( )
 测试此枚举是否包含更多的元素。
2	Object nextElement( )
若是此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。
实例
如下实例演示了Enumeration的使用:
实例
import java.util.Vector;
import java.util.Enumeration;
 
public class EnumerationTester {
 
   public static void main(String args[]) {
      Enumeration<String> days;
      Vector<String> dayNames = new Vector<String>();
      dayNames.add("Sunday");
      dayNames.add("Monday");
      dayNames.add("Tuesday");
      dayNames.add("Wednesday");
      dayNames.add("Thursday");
      dayNames.add("Friday");
      dayNames.add("Saturday");
      days = dayNames.elements();
      while (days.hasMoreElements()){
         System.out.println(days.nextElement()); 
      }
   }
}
以上实例编译运行结果以下:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday

位集合(BitSet)

位集合类实现了一组能够单独设置和清除的位或标志。框架

该类在处理一组布尔值的时候很是有用,你只须要给每一个值赋值一"位",而后对位进行适当的设置或清除,就能够对布尔值进行操做了。工具

关于该类的更多信息,请参见位集合(BitSet)测试

向量(Vector)

向量(Vector)类和传统数组很是类似,可是Vector的大小能根据须要动态的变化。编码

和数组同样,Vector对象的元素也能经过索引访问。spa

使用Vector类最主要的好处就是在建立对象的时候没必要给对象指定大小,它的大小会根据须要动态的变化。code

关于该类的更多信息,请参见向量(Vector)

栈(Stack)

栈(Stack)实现了一个后进先出(LIFO)的数据结构。

你能够把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其余元素的顶部。

当你从栈中取元素的时候,就从栈顶取一个元素。换句话说,最后进栈的元素最早被取出。

关于该类的更多信息,请参见栈(Stack)

字典(Dictionary)

字典(Dictionary) 类是一个抽象类,它定义了键映射到值的数据结构。

当你想要经过特定的键而不是整数索引来访问数据的时候,这时候应该使用Dictionary。

因为Dictionary类是抽象类,因此它只提供了键映射到值的数据结构,而没有提供特定的实现。

关于该类的更多信息,请参见字典( Dictionary)

哈希表(Hashtable)

Hashtable类提供了一种在用户定义键结构的基础上来组织数据的手段。

例如,在地址列表的哈希表中,你能够根据邮政编码做为键来存储和排序数据,而不是经过人名。

哈希表键的具体含义彻底取决于哈希表的使用情景和它包含的数据。

关于该类的更多信息,请参见哈希表(HashTable)

属性(Properties)

Properties 继承于 Hashtable.Properties 类表示了一个持久的属性集.属性列表中每一个键及其对应值都是一个字符串。

Properties 类被许多Java类使用。例如,在获取环境变量时它就做为System.getProperties()方法的返回值。

相关文章
相关标签/搜索