Java 数据结构
1.枚举(Enumeration)
enumerate本身不是数据结构,但是在其他数据结构中使用比较多,可以从数据结构中取回连续元素,但是现在被迭代器取代,现代代码中用的非常少。Enumeration的方法比较少,用来判断枚举列表中是否有元素,以及获取下一个元素。
hasmoreElements() | 在从数据结构中取回数据之前需要将数据结构中的数据复赋值给Enumeration对象,然后通过Enumeration的方法来遍历数据 |
---|---|
nextElement() | 用来获取下一个元素 |
2.位集合(Bitset)
独立创建位或者标志,在对一系列bool类型值进行操作是非常有用,通过操作设置的位或者标志间接的操作bool值。
所有方法可以概括为一下几类:
设置 | set(),clear() |
---|---|
运算 | and、or、andNot、xor、equals |
描述查询 | isempty、cardinality |
其他 | tostring、clone、get、flip、and |
note:直接输出BitSet变量时,只会输出所有值为true的元素对应的位的set,而不是输出每一位的值。若要输出每一位bool值需要通过get方法来访问。
3.向量(vector)
向量也是一种动态数组,与ArrayList和BitSet一样可以自增来适应需要保存的数据大小并且封装了一些功能,不同的是vector可以用在线程同步中,不需要自己管理线程同步问题。
增 | add、addAll、addElement、insertElementAt |
---|---|
删 | clear、remove、removeAll、removeAllElements、removeElement、removeRange、removeElementAt |
改 | set、setElementAt |
查 | indexof、elemenAt |
其他 | contains、toString、elements、clone、capacity、isEmpty、size |
4.栈(stack)
stack是vector的一个子类,但它同时定义了一些属于自己的方法来实现经典栈的后进先出的特性。
boolean empty() | 用于判断栈内是否为空 |
---|---|
Object peek() | 用于查询栈顶部的元素 |
Object pop() | 删除栈顶部元素 |
Object push() | 往栈顶压入元素 |
int search() | 查找目标项在栈内的位置 |
note:search方法是以栈顶元素为基准并定为1,往后的元素以此递增1。
5.字典(dict)
Dict通过键值映射来定义数据结构,通过键来访问存储的值,一般用于不通过整数来查询值的情景中,所以字典中的键不是整数值而是特定的键。
note:字典是抽象方法,需要自己实现相应的功能,现在一般通过实现 Map接口来获取字典功能。
增加 | put()、putAll() |
---|---|
删除 | clear()、remove() |
查找 | get() |
其他 | keySet()、values()、entrySet() |
6.哈希表(Hashtable)
哈希表是字典的具体实现,也是通过映射关系建立数据结构。在java2后实现了map接口,和Hashmap非常相似,但是有一个重要的区别是Hashtable支持线程同步。
扫描二维码关注公众号,回复:
4638827 查看本文章
7.属性(properties)
属性继承了Hashtable,常常用来存储属性集。properties的键和值一般都是字符串,它的值一般也称作属性。属性接口中的方法也与Hashtable的方法大致一样。