Java数据结构
2021-11-16 18:52:10 0 举报
AI智能生成
讲述了超越数组、常用的Java数据结构、泛型等内容
作者其他创作
大纲/内容
数据结构介绍
产生的原因
数组的限制
不能改变大小
功能
提高了一种以明确的方法
存储
检索
常用数据结构
Iterator
作用
以定义好的顺序遍历一系列元素的标准方式
使用范围
不能在数据结构外使用
常见方法
hasNext()
结构是否还包含其他元素
调用该方法查看是否可以继续遍历结构
next()
获取结构中的下一个元素
返回Object对象
如果没有更多的元素
该方法将引发NoSuchElementException异常
结合hasNext()方法使用,确保还有元素可以检索
注意
并非数据结构
位组
使用场景
表示大量的二进制数据
开关值
1表示开
0表示关
布尔值
1表示真
0表示假
作用
用位来存储布尔值
存储可以用布尔值来模拟的属性
将属性定义位常量索引值
实现方式
BitSet
位
分别设置或清除
跟踪一组布尔值
标记
布尔值
开/关状态之一
初始化
每一位被初始化位false
常用方法
set(int)
设置位
clear(int)
清除位
get
获取位组中的各个位
size
确定位组表示多少位
对位组进行比较方法
对位组进行按位运算的方法
优点
无需通过按位运算来提取位置‘
使用索引引用每一位
自动增大
Vector
作用
实现了矢量
一个可缩放的对象数组
根据需要增大和缩小
元素通过索引访问
优点
自动地增大或缩小
常见概念
矢量的大小
当前存储的元素数目
矢量的容量
被分配来存储元素的内存量
大于或等于矢量的大小
创建方式
构造方法创建一个不含任何元素的默认实例
矢量在创建时都为空
构造方法创建指定容量的矢量
构造方法创建指定矢量每次的增长量
增长值越小
内存管理效率越高
执行开销越大
常见方法
对元素进行操作的方法
使用索引
add()
元素加入到矢量中
将元素加入到指定位置
lastElement()
检索最后加入的元素
返回值进行强制类型转换
get()
通过索引检索矢量中的元素
remove()
将指定位置的元素删除
clear()
删除所有元素
不使用索引
contains()
检验矢量中是否包含指定的元素
indexOf()
找出元素对应索引
如果包含
返回它的索引
没有
返回-1
removeElement()
删除指定元素
判断和操纵矢量大小
size()
元素数目
setSize()
将矢量缩放为指定的大小
矢量被扩展
插入空元素
矢量被压缩
索引值超过指定大小的元素都将被丢弃
trimToSize()
使大小和容量相等
遍历数据结构
依次处理矢量中的所有元素
iterator()
返回一个可供遍历的元素列表
for循环遍历
for(variable:structure)
堆栈
作用
模拟以特定顺序进行访问的信息
实现方式
Strack类
实现后进先出的堆栈
看作垂直的对象堆栈
新元素被加入到栈顶
弹出元素时,弹出的是栈顶的元素
该类是Vector的子类
常用方法
push()
将新的元素加入到栈中
pop()
将元素从栈中弹出
peek()
获取栈顶元素
search()
在堆栈中搜索元素
返回该元素离栈顶的距离
没有找到,返回-1
empty()
判断堆栈是否为空
Map
作用
为实现键映射数据结构定义了一个框架
存储通过键值引用的对象
定义了一种根据键值来
存储
检索
声明了大量用于操纵字典中数据的方法
本质
键映射方法的实现
类Hashtable
其他实现了接口Map的类
常见方法
put
将对象放入到字典中
get
取得字典中的对象
remove()
删除指定键值对应的元素
size()
获取结构中有多少元素
isEmpty()
检测结构是否为空
散列表
实现方式
Hashtable类
从Dictionary派生而来,实现了接口Map
Dictionary是抽象类
定义了用于将
键值
标识符
数值
适用场景
通过键值访问数据
提供了键映射数据结构的完整实现
定义的键值结构组织数据
也有容量
作用
基于某种数据类型的键值来存储数据
具用由负载系数定义的效率
负载系数
一个0.0到1.0的浮点数
越接近1.0,内存使用效率越高
越接近0.0,查找的效率越高
决定了散列表如何以及何时为更多的元素分配空间
表示那些根据值进行查找或引用时太耗时的数据
如何分配内存
将表的当前大小同容量和负载系数乘积进行比较
散列表的大小超过这个乘积,将通过重新散列来增加容量
创建方式
构造方法创建默认散列表
构造方法创建具用指定初始容量的散列表
构造方法创建具用指定初始容量和负载系数的散列表
常用方法
clear()
删除散列表中的所有键值和元素
contains()
检测是否包含指定的对象
containsKey()
查找散列表
rehash()
强行重新散列
hashCode()
定义了该方法的类可以通过散列表进行高效地存储和访问
equals()
判断两个对象是否相等
散列码
定义
散列表计算元素的键值
作用
它唯一地标识了散列表中的每个元素
字符串存入散列表
通过整数散列码来访问这些字符串
泛型
作用
使数据结构处理任何类型的对象
指定数据结构中的期望的类
使检索数据结构中的对象更简单
不需要将其强制转换为所需的类
形式
期望的类用字符<>括起来,并放在数据结构名后面
当类很多时,可以在<>括起来后,使用逗号分隔
0 条评论
下一页