Java数据结构

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

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

以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collection)。

枚举

枚举接口虽然本身不属于数据结构,但它在其他数据结构的范畴里应用很广。枚举接口定义了一种从数据结构中取回连续元素的方式。

枚举接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象结合中的元素。

这种传统接口已经被迭代器取代,虽然枚举还没被遗弃,但在现代代码中已经很少用了,但是尽管如此其还是在使用像vector和Properties这些传统类所定义的方法中,除此之外,还用在一些API的类中。

数据库字段对应java枚举值要用什么类型表示 java枚举实现数据字典_数据结构


实例如下:

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

位集合
位集合类实现了一组可以单独设置和清除的位或标志。
该类在处理一组布尔值的时候有用,只需要给每个值赋值一“位”,然后对位进行适当的设置或清除,就可以对布尔值进行操作了。

JavaBitset类
一个Bitest类创建一个特殊类型的数组来保存位置,Bitest中数组大小会随着需要增加,这和位向量类似。
Bitest定义了两个构造方法。
第一种构造方法创建一个默认的对象:

Bitest()

第二种方法允许指定初始化大小。所有位初始化 为0.

Bitest(int size)

向量
向量类和传统数组非常像似,但是向量的大小能根据需要动态变化。
和数组一样向量对象的元素也能通过索引访问。
好处在于创建对象时不必给对象指定大小,它的大小会根据需要动态的变化。


实现了一个后进先出的数据结构。
把栈理解为对象的垂直分布线,当添加一个新元素时,将新元素放在其他元素的顶部。

字典
字典类是一种抽象类,定义了键映射到值的数据结构。
当想通过特定的键而不是指定的值来访问数据的时候,这时候应该使用字典。
由于其实抽象类,所以类中的方法没有提供特定的实现。

哈希表
Hashtable类提供了一种在用户定义键结构的基础之上组织数据的手段。
哈希表键的具体含义完全取决于哈希表的使用情景和它包含的数据。

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