Java:一般数据结构

数据结构

  • 数据结构是计算机存储、组织数据的方式。
  • 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
  • 精心选择的数据结构可以带来更高的运行或者存储效率。
  • 数据可够往往同搞笑的检索算法和索引技术有关。
  • Java 中集合框架其实就是数据结构的实现的封装。

数据结构的作用:

1.模拟生活中数据的存储
2.作为程序员开发的工具

队列:

  队列是一种特殊的现行表,特殊支出在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的现行类,进行插入操作的端成为队尾,进行删除操作的端称为队头。

单向队列(Queue):先进先出(FLFO),只能从队列尾插入数据,只能从队列头删除数据。  
双向队列(Deque):可以从队列尾/头插入数据,也可以从队列头/尾删除数据。

栈(stack)

  又名堆栈,是一种运算首先的线性表,后进先出(LIFO),其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素,又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素,又称作为出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

哈希表(hashtable)

  在一般的数组中,元素在数组中的索引位置是随机的,元素的取值和元素的位置之间不存在确定的关系,因此,在数组中查找特定的值时,需要把查找值和一些了的元素进行比较,此时的查询效率依赖于查找过程中所进行的比较次数。如果元素的值(value)和在数组中的索引位置(index)有一个确定的对应关系(hash)

公式为: index = hash(value);

  那么对应给定的值,只要调用上述的 hash(value) 方法,就能找到数组中取值为 value 的元素的位置。
  如果数组中元素的值和索引位置存在对应关系,这样的数组就称之为哈希表,可以看出哈希表最大的有点是提供查找数据的效率。

  一般情况下,是不会把哈希码作为元素在数组中的索引位置,因为哈希码很大,数组长度有限,会造成索引越界问题。此时,可以在哈希码和元素位置之间做某种映射关系。
  元素值 –> hash(value) –> 哈希码 –> 某种映射关系 –> 元素存储索引

注:每个对象的哈希码是不同的。

  哈希表的插入和查找是很优秀的,可是当哈希表接近装满时,因为数组的扩容问题,性能较低(转移到更大的哈希表中)。

Java 加载因子:0.75。
数组:会记录添加顺序,按照索引位置来存储,允许元素重复。
哈希表:元素是不能重复的,对象如果相同则hashCode相同 –> index 相同,不会记录元素添加的先后顺序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值