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

齊博國際網址:JAVA提高教程(11)認識Map

?

Map可以為某些數據供給快速查找功能,經由過程關鍵字(key)可以快速的獲得對應的Value,而不用像List那樣必要大年夜范圍的遍歷或特其余算法。

1. 源代碼

importjava.util.ArrayList;

importjava.util.HashMap;

importjava.util.HashSet;

importjava.util.Iterator;

importjava.util.List;

importjava.util.Map;

importjava.util.Set;

importjava.util.Map.Entry;

/**

*老紫竹JAVA前進教程(11)-熟識Map

*將鍵映射到值的工具。

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

*

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

*

*@author老紫竹

*/

publicclassLession{

publicstaticvoidmain(String[]args){

//構造一個Map

//我們應用HashMap進行測試

Mapmap=newHashMap();

//查看map是否為空

System.out.println(map.isEmpty());//true

//存入數據

//put措施會返回原本的值

//假如是第一次賦值,則返回null;

System.out.println(map.put("id","123"));//null

map.put("name","xyz");

//再次查看map是否為空

System.out.println(map.isEmpty());//false

//查看有若干數據了

System.out.println("size="+map.size());//size=2

//查看所有的數據

showMap(map);//id=>123;name=>xyz;

//獲取數據

System.out.println("name="+map.get("name"));//name=xyz

//放入不合key類型的數據

map.put(newInteger(1),newObject());

//放入聚攏類型

Setset=newHashSet();

set.add(111);

set.add(222);

Listlist=newArrayList();

list.add(333);

list.add(444);

map.put(set,list);

//以致放入Map類型

Mapm=newHashMap();

m.put("mm","mmmm");

map.put(m,"mapinmap");

//id=>123;1=>java.la齊博國際網址ng.齊博國際網址[email protected];{mm=mmmm}=>mapinmap;name=>xyz;

//[222,111]=>[333,444];

showMap(map);

//我們考試測驗放入重復key的數據

System.out.println(map.put("id","456"));//123

//可以看到,原本的數據value被覆蓋了

//id=>456;1=>[email protected];{mm=mmmm}=>mapinmap;name=>xyz;

//[222,111]=>[333,444];

showMap(map);

//反省是否存在我們必要的數據

//查找key值

System.out.println(map.containsKey("name"));//true

//查找Value

System.out.println(map.containsValue(list));//true

//刪除一些數據

//是根據key進行刪除的

System.out.println(map.remove(m));//mapinmap

showMap(map);//id=>456;1=>[email protected];name=>xyz;[222,

//111]=>[333,444];

//Entry的聚攏

//內部便是Map實現的,以是對其操作是相互影響的

//不支持add操作,

Setms=map.entrySet();

//[id=456,[email protected],name=xyz,[222,111]=[333,444]]

System.out.println(ms);

System.out.println(ms.size()+"/"+map.size());//4/4

//考試測驗經由過程entrySet刪除

Iteratorit=ms.iterator();

if(it.hasNext()){

Entrye=it.next();

System.out.println齊博國際網址(e.getKey()+"="+e.getValue());//id=456

it.remove();

}

System.out.println(ms.size()+"/"+map.size());//3/3

//清除所稀有據

map.clear();

System.out.println(ms.size()+"/"+map.size());//0/0

}

publics齊博國際網址taticvoidshowMap(Mapmap){

//迭代Key的操作

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

Objectkey;

while(it.hasNext()){

key=it.next();

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

}

System.out.println();

}

}

2 運行結果

true

null

false

size=2

id=>123; name=>xyz;

name=xyz

id=>123; 1=>[email protected]齊博國際網址ced; {mm=mmmm}=>map in map; name=>xyz; [222, 111]=>[333, 444];

123

id=>456; 1=>[email protected]; {mm=mmmm}=>map in map; name=>xyz; [222, 111]=>[333, 444];

true

true

map in map

id=>456; 1=>[email protected]; name=>xyz; [222, 111]=>[333, 444];

[id=456, [email protected], name=xyz, [222, 111]=[333, 444]]

4/4

id=456

3/3

0/0

3 測試:

考試測驗放入各類工具類型,并檢測和刪除它們

4 總結

map的put和get是關鍵,不合的實現Map的要領有一點區別,我們會在后面的先容里解說常用的Map實現

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

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

建体彩网
500万竞彩即时比分直播 规律 河北20选5 亲朋棋牌官网大厅电脑版 1737金蟾捕鱼游戏中心 极速11选5投注技巧 象棋绝杀十三招图解 全民麻将单机版下载 黑龙江6十开奖结果 重庆麻将血战到底打法