建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

愛博娛樂官網信譽:JAVA提高教程(12)認識Map之HashMap

?

Map里面應用率最多的,應該是HashMap吧,我們先來看看這個

packagecollection.lession12;

importjava.util.HashMap;

importjava.util.Iterator;

importjava.util.Map;

/**

*老紫竹JAVA前進教程(12)-熟識Map之HashMap

*基于哈希表的Map接口的實現。

*一個映射不能包孕重復的鍵;每個鍵最多只能映射到一個值。

*

*相關API請查看api.java2000.net/Map

*

*@author老紫竹

*/

publicclassLession12{

publicstaticvoidmain(String[]args){

//我們用String做所有的測試

HashMapmap=newHashMap();

//容許null作為Key.

//看看源代碼實現就知道了

//if(key==null)

//returnputForNullKey(value);

map.put(null,"測試null的鍵");

showMap(map);//null=>測試null的鍵;

//當然也容許null的Value了

map.put("測試null的值",null);

showMap(map);//null=>測試null的鍵;測試null的值=>null;

//對應的都是null

//留意這個n愛博娛樂官網信譽ul愛博娛樂官網信譽l調換了前面的"NullKey"字符串的value了

//也便是后面的相同的key會調換曩昔的key對應的value

//返回值為曩昔的值

System.out.println("曩昔的值="+map.put(null,null));//曩昔的值=測試null的愛博娛樂官網信譽鍵

showMap(m愛博娛樂官網信譽ap);//null=>null;測試null的值=>null;

//其它的和Map相同的操作就不先容了

//這里先容一下Hash的特殊的地方

//大年夜家應用時必然要留意,著實和HashSet有相同的地方

//那便是經由過程Key的Hashcode進行查找

Mapmap2=newHashMap();

MyObjectkey1=newMyObject("第一個工具");

MyObjectkey2=newMyObject("第二個工具");

MyObjectkey3=newMyObject("第三個工具");

map2.put(key1,"111111");

map2.put(key2,"222222");

//我們來測試讀取第一個

System.out.println(map2.get(key1));//111111

//我們考試測驗改動key1的name

key1.setName("第一個工具-改動");

//我們再次測試讀取第一個

//沒有找到哦!

System.out.println(map2.get(key1));//null

//總結

//HashSet必然要留意hashCode的問題

//對付String等弗成改動類無所謂

//但對付通俗類,必然要留意其hashCode的實現要領

//切切不要讓一個類的hashCode隨便更改

//假如非得更新,應該先刪除,后改動

map2.remove(key2);

key2.setName("第二個工具-改動");

map2.put(key2,"2222222---");

showMap(map2);//第二個工具-改動=>2222222---;第一個工具-改動=>null;

//對Value則沒有這個限定

}

publicstaticvoidshowMap(Mapmap){

//迭代Key的操作

Iteratorit=map.keySet().iterator();

Objectkey;

while(it.hasNext()){

key=it.next();

System.out.print(key+"=>"+map.get(key)+";");

}

System.out.愛博娛樂官網信譽println();

}

}

classMyObject{

privateStringname;

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

MyObject(Stringname){

this.name=name;

}

//留意這里應用name的hashCode作為類的hashCode

publicinthashCode(){

returnname.hashCode();

}

publicStringtoString(){

returnname;

}

}

運行結果(已經包孕在源代碼里)

null=>測試null的鍵;

null=>測試null的鍵; 測試null的值=>null;

曩昔的值=測試null的鍵

null=>null; 測試null的值=>null;

111111

null

第二個工具-改動=>2222222---; 第一個工具-改動=>null;

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
新疆25选7 国足新浪体育 精密模具加工厂赚钱吗 双色球有微信公众号 足球比分网即时比分即时比分 21点游戏首选 赚钱屏锁 中国体育彩票超级大乐透 下载app赚钱怎么回事 福建11选5