集合框架
集合框架
pangpd
Just a boy caught up in dreams and fantasies !
展开
-
【Java】数据结构-哈希表(Hash table)
1. 哈希表哈希表(Hash table),又称散列表。是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。在一般的数组中,元素在数组中的索引位置是随机的,元素的取值和元素的位置之间不存在确定的关系,因此,在数组中查找特定的值时,需要把查找值和一系列的元素进行比较。此时的查询效率依赖于查找过程中所进行的比较次数。如果元素的值(value)和在数组中的索引(inde原创 2020-08-11 14:07:57 · 179 阅读 · 0 评论 -
【Java】数据结构-栈(Stack)
1. 栈(Stack)定义栈,是一种受限的线性表,后进先出 (LIFO)其限制是仅允许在表的一端进行插入和删除运算,这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈,入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈中删除元素又称为栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈的优势:最擅长操作栈顶;但是操作栈底就比较麻烦,需要将栈顶一个个出栈。2. 自定义栈结构栈的实现可以使用使用数组,也可以使用链表,在这里我基于数组来实现原创 2020-08-11 13:10:04 · 141 阅读 · 0 评论 -
【Java】数据结构-队列(Queue)
队列定义队列是一种特然的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行添加操作,和栈一样,队列是一种受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为对头。队列有可以分为:单向队列和双向队列。单向队列(Queue):先进先出(FIFO),只能从队列尾插入数据,只能从队列头删除数据。双向队列(Deque):可以从队列尾/头插入数据,也可以从队列尾/头删除数据。最擅长操作头和尾自定义双向队列其实队列是一种特殊的链表,构建队列时,我们将其继原创 2020-08-11 12:00:57 · 184 阅读 · 0 评论 -
【Java】自定义LinkedList(链式存储结构)和性能分析
链表结构链表结构分为两种:(1)单向链表:要么从头遍历到尾,要么从尾遍历到头(2)双向链表:即可以从头遍历到尾,又可以从尾遍历到头。通过引用关系表示上一个节点和下一个节点的关系1. 单向链表class Node { Node next; // 下一个节点 Object ele; // 当前节点的元素}2. 双向链表我们以双链表为例,演示链表的基本操作class Node { Node next; // 下一个节点 Node prev; // 上一个节原创 2020-08-10 20:24:26 · 312 阅读 · 0 评论 -
【Java】自定义ArrayList(顺序存储结构)和性能分析
1. 自定义ArrayList首先我们先看一个案例:假如一个球场的教练,安排球员(5个)上场模拟数据存储的案例,模拟上场球员的球衣号码的存储。(1)初始容量为5的线性列表,准备用来存储场上的5个球衣号码:[11,22,33,44,55](2)查询指定位置的球员球衣号码是多少,查询索引位置为2的球衣号码如:33;(3)根据球衣号码查询该球员在场上的索引位置,44在球衣号码的球员在场上的索引位置是3(4)替换球场上索引位置为2的球员,替换之后该位置的球衣编号为,333(5)替换球衣号码为22的球原创 2020-08-09 13:32:01 · 239 阅读 · 0 评论