91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中HashMap怎么用

發布時間:2021-09-23 14:18:17 來源:億速云 閱讀:150 作者:小新 欄目:編程語言

這篇文章主要介紹了Java中HashMap怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

HashMap的基本結構

package com.liuyuhe;public class Node { int hash; Object key; Object value; Node next;}

package com.liuyuhe;public class MyHashMap { Node[] table; //位桶數組 int size; //存放鍵值對的個數 public MyHashMap() { table=new Node[16]; } }

put()方法存儲鍵值對

public void put(Object key,Object value) { Node newNode = new Node(); newNode.hash=myHash(key.hashCode(),table.length); newNode.key=key; newNode.value=value; newNode.next=null; Node temp = table[newNode.hash]; Node iterLast=null; if(temp==null) {  table[newNode.hash]=newNode; }else {  while(temp!=null) {  if(temp.key.equals(key)) {   temp.value=value;   return;  }else {   iterLast=temp;   temp=temp.next;  }  }  iterLast.next=newNode; } ++size; } public int myHash(int v,int length) { System.out.println("hash in myHash: "+(v&(length-1))); return v&(length-1); }

重寫toString()方法打印Map內容

@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); boolean isFirst=true; //遍歷數組 for(int i=0;i<table.length;++i) {  //遍歷鏈表  Node temp = table[i];  while(temp!=null) {  if(isFirst) {   isFirst=false;   sb.append(temp.key+":"+temp.value);  }else {   sb.append(","+temp.key+":"+temp.value);  }  temp=temp.next;  } } sb.append("}"); return sb.toString(); }

get()方法查找鍵值對

public Object get(Object key) { int hash=myHash(key.hashCode(),table.length); Object value=null; if(table[hash]!=null) {  Node temp=table[hash];  while(temp!=null) {  if(temp.key.equals(key)) {   value=temp.value;   break;  }else {   temp=temp.next;  }  } } return value; }

增加泛型(完整代碼)

package com.liuyuhe;public class Node<K,V> { int hash; K key; V value; Node next;}

package com.liuyuhe;public class MyHashMap<K,V> { Node[] table; //位桶數組 int size; //存放鍵值對的個數 public MyHashMap() { table=new Node[16]; } public void put(K key,V value) { Node newNode = new Node(); newNode.hash=myHash(key.hashCode(),table.length); newNode.key=key; newNode.value=value; newNode.next=null; Node temp = table[newNode.hash]; Node iterLast=null; if(temp==null) {  table[newNode.hash]=newNode; }else {  while(temp!=null) {  if(temp.key.equals(key)) {   temp.value=value;   return;  }else {   iterLast=temp;   temp=temp.next;  }  }  iterLast.next=newNode; } ++size; } @SuppressWarnings("unchecked") public V get(K key) { int hash=myHash(key.hashCode(),table.length); V value=null; if(table[hash]!=null) {  Node temp=table[hash];  while(temp!=null) {  if(temp.key.equals(key)) {   value=(V)temp.value;   break;  }else {   temp=temp.next;  }  } } return value; } public int myHash(int v,int length) { System.out.println("hash in myHash: "+(v&(length-1))); return v&(length-1); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); boolean isFirst=true; //遍歷數組 for(int i=0;i<table.length;++i) {  //遍歷鏈表  Node temp = table[i];  while(temp!=null) {  if(isFirst) {   isFirst=false;   sb.append(temp.key+":"+temp.value);  }else {   sb.append(","+temp.key+":"+temp.value);  }  temp=temp.next;  } } sb.append("}"); return sb.toString(); }}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Java中HashMap怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇平县| 保定市| 滁州市| 达拉特旗| 栖霞市| 横山县| 台安县| 齐齐哈尔市| 贞丰县| 中山市| 栖霞市| 青冈县| 区。| 黔江区| 乌兰浩特市| 龙南县| 临湘市| 开化县| 中江县| 阿瓦提县| 商洛市| 瓦房店市| 乡城县| 科尔| 方山县| 临高县| 濉溪县| 永州市| 贞丰县| 玉树县| 嘉峪关市| 林口县| 安阳市| 丹棱县| 安丘市| 青河县| 卓资县| 西乌珠穆沁旗| 怀化市| 宝丰县| 弋阳县|