java中實現簡單HashMap(就是自己寫簡單的,不要太複雜)

時間 2021-08-30 09:51:48

1樓:

hashmap這個結構,是從一個key到一個value的對映的集合,其中的hash是指用hash陣列(也就是雜湊表)來存放value集合。

實現思路上,通過key的hashcode來確定value儲存的位置,遇到衝突的位置就通過某個規則找下一個位置。

實現的簡述:

1. value陣列,object values;

2. key,object key,可能要考慮hashcode方法和equals方法的重寫;

3. 衝突解決規則,下一個位置=(該位置*2+123)% values.size();

需要注意的是,values存的元素不是一個value而已,還要保留用來確定位置的hashcode值,因為在衝突的時候,hashmap的get(key)方法需要比較hashcode來確定是不是key對應的value。

更好的辦法,是values存一個連結串列,衝突的元素都放在連結串列裡,在get(key)的時候遍歷這個連結串列來獲得value。再細節的東西,自己想想吧,這個寫起來也不算複雜,可以動手試試。

2樓:匿名使用者

我覺得jdk裡面那個hashmap已經很簡單了。

你看著那麼多行**,其實很多都是註釋。

頂多把table擴容的功能去掉。

3樓:匿名使用者

hashmapmap=new hashmap();//定義map.put("key","我要最佳答案");//給map插值string str=map.get("key");//從map中取值

ssytem.out.println(str)

java 類實現多個介面,JAVA 一個類實現多個介面

小肥肥 a介面inte ce a b介面 inte ce b 實現了某個介面必須實現其全部的方法 public class impab implements a,bpublic int getb 阿派講故事 通過內部類實現介面,解決多個介面中方法重名問題 一個介面只有方法的特徵沒有方法的實現,因此這...

在Java介面A的實現類B中如何呼叫A中的變數

1.num有歧義 不表示哪一個num 2.會3.介面b的實現類c吧 因為介面中的變數都是public static 的,用b.num試試 玥玥弔 1 介面中你寫實現在繼承類?繼承下來當然報錯 the field num is ambiguous 2 介面中的變數 1 會得到但是前提是隻繼承b不能中間...

關於Java中介面實現的問題,一個關於Java中介面實現的問題

宣告實現這個介面,實現介面定義的方法。public class comparableforuser implements comparable public comparableforuser string name,int sequence override 必須實現的方法,由介面定義。publi...