Hash 的概念和特征
哈希(Hash)又被称为散列,是不管输入数据的长度有多长,最终都会通过散列算法将其以固定长度输出,这个输出的值就被称为哈希值
散列算法
散列算法又称为哈希算法,主要作用就是将任意长度的二进制明文,映射为较短的二进制串也就是哈希值,并且这种二进制明文很难映射成相同的哈希值
队列的概念和特征
队列是一种常用的数据结构,遵循先入先出(First-In-First-Out,FIFO)的原则,就是一个节点入队,出队时出先入队的元素
代码实现
队列底层可以利用数组或者链表进行实现,以下是利用链表来实现
public class LinkedQueue<T> {
private Node head;
private Node tail;
private int size;
private static class Node<T> {
private T value;
private Node next;
public Node(T value) {
this.value = value;
this.next = null;
}
public Node() {}
}
public LinkedQueue() {
head = new Node<>();
tail = new Node<>();
}
/**
* 入队
* @param value
*/
public void push(T value) {
Node node = new Node(value);
if (size == 0) {
head = node;
tail = head;
size++;
return;
}
tail.next = node;
tail = tail.next;
size++;
}
/**
* 出队
* @return
*/
public T pull() {
if (size == 0) {
return null;
}
T reVal = (T) head.value;
head = head.next;
size--;
return reVal;
}
}