介面概述
我們通過檢視
map介面描述,發現
map介面下的集合與
collection
介面下的集合,它們儲存資料的形式不同,如下圖。
map介面中常用集合概述
通過檢視map介面描述,看到map有多個子類,這裡我們主要講解常用的hashmap集合、linkedhashmap集合。
map介面中的常用方法
put方法時,若指定的鍵
(key)
在集合中存在,則返回值為集合中鍵對應的值(該值為替換前的值),並把指定鍵所對應的值,替換成指定的新值。
方法返回值為鍵所對應的值
使用put方法時,若指定的鍵(key)在集合中
map介面的方法演示
public class mapdemo
//當給map中新增元素,會返回key對應的原來的value值,若key沒有對應的值,返回null
system.out.println(map.put("星期一", "mon")); // monday
system.out.println(map); //
//根據指定的key獲取對應的value
string en = map.get("星期日");
system.out.println(en); // sunday
//根據key刪除元素,會返回key對應的value值
string value = map.remove("星期日");
system.out.println(value); // sunday
system.out.println(map); // }}
鍵找值方式:即通過元素中的鍵,獲取鍵所對應的值
操作步驟與**:
1.獲取map集合中所有的鍵,由於鍵是唯一的,所以返回乙個set集合儲存所有的鍵
2.遍歷鍵的set集合,得到每乙個鍵
3.根據鍵,獲取鍵所對應的值
**演示: //利用了迭代器iterator (點此了解迭代器)
public class mapdemo }}
map集合遍歷鍵值對方式
鍵值對方式:即通過集合中每個鍵值對(entry)物件,獲取鍵值對(entry)物件中的鍵與值。
操作步驟與**:
1.獲取map集合中,所有的鍵值對(entry)物件,以set集合形式返回。
2.遍歷包含鍵值對(entry)物件的set集合,得到每乙個鍵值對(entry)物件
3.通過鍵值對(entry)物件,獲取entry物件中的鍵與值。
注意:map集合不能直接使用迭代器或者foreach進行遍歷。但是轉成set之後就可以使用了。
//假設key 為integer型 value 為string ,具體自行定義
mapmap = new hashmap();
放入資料
map.put(1,"a");
map.put(2,"b");
map.put(3,"c");
根據key獲取對應的value
map.get(1); //獲取到對應key=1時的value=a
遍歷方法1:keyset遍歷
iteratoriter = map.keyset().iterator();
while (iter.hasnext())
————————————————————————————————————————————
//還有一種寫法 用for each
for (string key : map.keyset())
遍歷方法2:
iterator> iter = map.entryset().iterator();
entryentry;
while (iter.hasnext())
//同樣的for each寫法
for (entryentry: map.entryset())
另外,在考慮效率方面,for each速度更快一點點,推薦使用for each寫法來遍歷。 Java中的Map用法
將鍵對映到值的物件。乙個對映不能包含重複的鍵 每個鍵最多只能對映到乙個值。此介面取代 dictionary 類,後者完全是乙個抽象類,而不是乙個介面。hashmap 最常用的map,它根據鍵的hashcode 值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。hashmap最多隻允許一條記錄...
Java學習筆記整理 Map
集合 collection map 鍵值對 key value對映表 預設 hashmap hashtable concurrenthashmap linkedhashmap sortedmap i treemap 1.hashmap mapmap new hashmap 增刪改查 map.put ...
Java筆記 列舉的用法
列舉的用法 一 switch語句以及列舉自帶的屬性 此處要注意switch 引數 引數型別只能是byte,short,char,int和列舉型別,float,double,string型別都不可以。public class enumexample public static void main st...