Java中的数据结构
以下内容引用自http://wiki.jikexueyuan.com/project/java/data-structures.html:
Java工具包中所提供的数据结构非常强大并且有很多的功能。这些数据结构包含以下的接口和类:
- Enumeration
- BitSet
- Vector
- Stack
- Dictionary
- Hashtable
- Properties
现在这些类都是旧的了,Java-2已经引入了一种新的框架叫做Collections Framework。
一、Enumeration
枚举接口本身并不是一个数据结构,但是它在其他数据结构中非常重要。The Enumeration接口定义了一种方法可以从一个数据结构中连续获取元素。
例如,Enumeration定义了一个叫做nextElement的方法,它可以用来在一个包含很多元素的数据结构中获得下一个元素。
二、BitSet
BitSet类实现了一组bits或flags,可以被独立的设置和清除。
在需要保存一组布尔值的时候这个类非常有用;只需要给每个值或集合赋值一个bit并且可以视情况设置或清除它。
三、Vector
Vector类和传统的Java数组类似,但是它可以增添新的元素。
和数组一样,Vector对象的元素可以通过下标序号来访问。
对于使用Vector类很好的是,在创建的时候不用担心去设置一个特定的集合大小;当必要的时候,它可以自动收缩和扩张。
四、Stack
Stack类中的元素后进先出(LIFO)。
可以简单认为stack就是一个对象的垂直堆栈;当添加一个新元素的时候,它就位于其它元素的顶部。
当将一个元素移出stack,从栈的顶部开始移出。换句话说,加进栈的最后一个元素会被最先移除。
五、Dictionary
Dictionary类是一个定义了键值对映射这种数据结构的抽象类。
当想通过一个特殊的键来访问数据而不是通过一个整数下标时最好使用Dictionary这个类。
因为Dictionary类是抽象的,它只提供了键值对映射的数据结构框架而不是一个具体的实现。
六、Hashtable
Hashtable类提供了一种组织数据的方式,依赖于一些用户自定义的键。
例如,在一个地址列表的hash table中,可以依赖于像ZIP code这种键来存储和排序数据而不是依赖于一个人的名字。
在hash table中键的特殊含义完全依赖于hash table的用途和它所包含的数据。
七、Properties
Properties是Hashtable的一个子类。它用来包含值的列表,在这个列表中键是一个字符串并且值也是一个字符串。
Properties类被很多其它Java类使用。例如,当获取环境变量值时,它是System.getProperties()这个方法返回值的对象类型。