/**
* @author chenyi
* @Description 自定義hashtable保存員工信息
* @date 2022/2/17 11:12
*/
public class MyHashtable {
int capacity = 11;
private Node[] data;
public MyHashtable() {
data = new Node[11];
}
private int hash(int id) {
return id % capacity;
}
public void add(Employee employee) {
int hashCode = hash(employee.getId());
Node newNode = new Node(employee);
Node head = data[hashCode];
if (head == null) {
data[hashCode] = newNode;
return;
}
Node temp = head;
while (temp.next != null) {
temp = temp.next;
}
temp.next = newNode;
}
public Employee find(int id) {
int hashCode = hash(id);
Node curr = data[hashCode];
while (curr != null) {
if (curr.getEmployee()
.getId() == id) {
return curr.getEmployee();
}
curr = curr.next;
}
return null;
}
public void list() {
for (int i = 0; i < data.length; i++) {
Node curr = data[i];
System.out.print("第" + (i + 1) + "條鏈表:");
while (curr != null) {
System.out.print(curr.getEmployee()
.toString());
curr = curr.next;
}
System.out.println();
}
}
private Employee remove(int id) {
int hashCode = hash(id);
Node curr = data[hashCode];
Node prev = null;
while (curr != null) {
if (curr.getEmployee()
.getId() == id) {
if(prev==null) {
data[hashCode] = curr.next;
}else{
prev.next = curr.next;
}
curr.next = null;
return curr.employee;
}
prev = curr;
curr = curr.next;
}
return null;
}
class Node {
private Employee employee;
private Node next;
public Node(Employee employee) {
this.employee = employee;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
public Employee getEmployee() {
return employee;
}
}
public static void main(String[] args) {
MyHashtable myHashtable = new MyHashtable();
// 添加員工
System.out.println("添加測試");
myHashtable.add(new Employee(0,"jet"));
myHashtable.add(new Employee(1,"jack"));
myHashtable.add(new Employee(2,"smith"));
myHashtable.add(new Employee(3,"jane"));
myHashtable.add(new Employee(4,"jerry"));
myHashtable.add(new Employee(11,"hover"));
myHashtable.list();
System.out.println("刪除測試");
myHashtable.remove(0);
myHashtable.list();
myHashtable.remove(0);
myHashtable.list();
myHashtable.remove(11);
myHashtable.list();
System.out.println("查詢測試");
Employee employee = myHashtable.find(4);
System.out.println(employee);
}
}
class Employee {
private int id;
private String name;
public Employee(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "{" + "id=" + id + ", name='" + name + '\'' + '}';
}
}
自定義hash表實現(xiàn)員工保存
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門染坯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來均芽,“玉大人,你說我怎么就攤上這事单鹿∠扑危” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵仲锄,是天一觀的道長劲妙。 經(jīng)常有香客問我,道長儒喊,這世上最難降的妖魔是什么镣奋? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮怀愧,結(jié)果婚禮上侨颈,老公的妹妹穿的比我還像新娘。我一直安慰自己芯义,他們只是感情好肛搬,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著毕贼,像睡著了一般温赔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鬼癣,一...
- 文/蒼蘭香墨 我猛地睜開眼志衍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了聊替?” 一聲冷哼從身側(cè)響起楼肪,我...
- 正文 年R本政府宣布廉沮,位于F島的核電站颓遏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏滞时。R本人自食惡果不足惜叁幢,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望坪稽。 院中可真熱鬧曼玩,春花似錦、人聲如沸窒百。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽篙梢。三九已至顷帖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間渤滞,已是汗流浹背贬墩。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 適合場景 在使用Spring Data JPA的時候,在使用UUID作為主鍵的時候停做,通常都會使用system-uu...
- 在開發(fā)中,會經(jīng)常遇到拷貝數(shù)據(jù)對象的情況们陆,也會遇到保存數(shù)據(jù)到本地的情況寒瓦,如果是用OC的話,無論是copyWithZo...
- python 日志模塊 logging FileHandler: 以“a”(追加)的方式將日志輸出到文件坪仇,如果文件...
- 在上篇中椅文,我與大家分享了關(guān)于如何進(jìn)行*.lrc歌詞文件的解析喂很,以及將解析完成后的歌詞展示在鑲嵌在ScrollVie...