中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

虹口区| 怀来县| 明光市| 漯河市| 林芝县| 雷州市| 新兴县| 池州市| 丘北县| 桓台县| 霍州市| 白玉县| 灌南县| 毕节市| 阜阳市| 富平县| 虎林市| 胶南市| 马山县| 岑溪市| 琼结县| 油尖旺区| 建湖县| 平江县| 荣昌县| 石屏县| 甘孜县| 德阳市| 丘北县| 荆门市| 无棣县| 手机| 年辖:市辖区| 安阳市| 唐山市| 垫江县| 稷山县| 铜川市| 北票市| 广东省| 荥经县|