多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Java 数据结构 Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类: * 枚举(Enumeration) * 位集合(BitSet) * 向量(Vector) * 栈(Stack) * 字典(Dictionary) * 哈希表(Hashtable) * 属性(Properties) 以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collection),我们后面再讨论。 ## 枚举(Enumeration) 枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。 枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。 例如,枚举定义了一个叫nextElement 的方法,该方法用来得到一个包含多元素的数据结构的下一个元素。 关于枚举接口的更多信息,[请参见枚举(Enumeration)](java-enumeration-interface.html)。 ## 位集合(BitSet) 位集合类实现了一组可以单独设置和清除的位或标志。 该类在处理一组布尔值的时候非常有用,你只需要给每个值赋值一"位",然后对位进行适当的设置或清除,就可以对布尔值进行操作了。 关于该类的更多信息,[请参见位集合(BitSet)](java-bitset-class.html)。 ## 向量(Vector) 向量(Vector)类和传统数组非常相似,但是Vector的大小能根据需要动态的变化。 和数组一样,Vector对象的元素也能通过索引访问。 使用Vector类最主要的好处就是在创建对象的时候不必给对象指定大小,它的大小会根据需要动态的变化。 关于该类的更多信息,[请参见向量(Vector)](java-vector-class.html) ## 栈(Stack) 栈(Stack)实现了一个后进先出(LIFO)的数据结构。 你可以把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其他元素的顶部。 当你从栈中取元素的时候,就从栈顶取一个元素。换句话说,最后进栈的元素最先被取出。 关于该类的更多信息,[请参见栈(Stack)](java-stack-class.html)。 ## 字典(Dictionary) 字典(Dictionary) 类是一个抽象类,它定义了键映射到值的数据结构。 当你想要通过特定的键而不是整数索引来访问数据的时候,这时候应该使用Dictionary。 由于Dictionary类是抽象类,所以它只提供了键映射到值的数据结构,而没有提供特定的实现。 关于该类的更多信息,[请参见字典( Dictionary)](java-dictionary-class.html)。 ## 哈希表(Hashtable) Hashtable类提供了一种在用户定义键结构的基础上来组织数据的手段。 例如,在地址列表的哈希表中,你可以根据邮政编码作为键来存储和排序数据,而是通过人的名字。 哈希表键的具体含义完全取决于哈希表的使用情景和它包含的数据。 关于该类的更多信息,[请参见哈希表(HashTable)](java-hashTable-class.html)。 ## 属性(Properties) Properties 继承于 Hashtable.Properties 类表示了一个持久的属性集.属性列表中每个键及其对应值都是一个字符串。 Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getProperties()方法的返回值。 关于该类的更多信息,[请参见属性(Properties)](java-properties-class.html)。