日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > Java Map底層實現思路

Java Map底層實現思路

來源:程序員人生   發布時間:2015-08-24 08:07:04 閱讀次數:3978次
<pre name="code" class="java">package cn.com.commsoft.map; /** * * @author wengle *Java中規定,兩個內容相同的對象 *(指的是通過調用equals方法返回true的對象),應當具有相等的hashcode *1、上面的話,相當于equals返回true的兩個對象,就具有相同的hashcode, *但是具有相同hashcode的對象,通過調用equals方法不1定返回true(Map就是1個例子) *2、重寫了equals方法,就必須重寫hashcode方法,為了保證上面的Java規定 */ public class MyMap { MyEntry[] arr = new MyEntry[100]; int size; /** * 采取hash算法實現map,(每一個對象都有1個地址, * 根據地址生成的1個hash碼,由于每一個對象的地址都不1樣,所以 * 生成的hash碼是唯1的) * @param key * @param value */ public void put(Object key, Object value){ MyEntry my = new MyEntry(key, value); //相當于地址映照函數,但是會產生地址映照沖突 int a = (key.hashCode()%100); //思路1:當地址沖突時,采取開放地址法處理沖突 while(arr[a].key != null){ a++; } arr[a] = my; /*思路2:當地址沖突時,采取鏈表法處理沖突-->這也是Java采取的設計思想, 數組加鏈表(即每一個數組元素里面放1個鏈表)*/ //第1步:申請1個每一個元素是鏈表的數組 MapLinkedList[] map = new MapLinkedList[999]; //第2步:添加元素 if(map[a] == null){ MapLinkedList list = new MapLinkedList(); list.add(e); map[a] = list; }else{ map[a].add(e); } } public Object get(Object key){ int a = (key.hashCode()%100); return arr[a].value; } } class MyEntry{ Object key; Object value; public MyEntry(Object key, Object value) { super(); this.key = key; this.value = value; } }



內容還會繼續更新,敬請關注!
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲区一区二 | 嫩草影院免费观看 | 久久av动漫 | 国产精品色综合一区二区三区 | 免费av一级片 | 韩国精品一区 | 亚洲国产精品久久久久久 | 免费不卡视频 | 高清不卡一区二区三区 | 一区二区三区在线播放 | 亚洲精品久久久久久久久久久 | 美女高潮网站 | 日韩精品一区二区三区中文在线 | 国产精品一区二区三区在线播放 | 国产在线视频一区 | 日韩精品成人免费观看视频 | 中文字幕日韩电影 | 男女爱爱免费视频 | av在线网址观看 | 成人h精品动漫一区二区三区 | 黄色一级大片在线免费看产 | av久久久 | 色先锋在线 | 精品一区二区三区国产 | 日韩电影一区二区三区 | 嫩草影院91 | 成人久久久久久久 | 狠狠色伊人亚洲综合网站色 | 可以免费看av | 国产精品99久久久久久宅男 | 国产欧美精品一区二区三区 | 一区二区视频在线播放 | 国产精品久久久久久久 | 九九九九九九精品 | 国产91在线 | 亚洲 | 天天射天天搞 | 亚洲第一性理论片 | 欧美一级片 | 午夜亚洲一区 | 麻豆少妇 | 日韩电影一区 |