void:clear() 清空集合中所有的<鍵,值>對
boolean:containsKey(Object key) 判斷是否包含指定的鍵
boolean:containsValue(Object value) 判斷是否包含指定的值
Set>:entrySet() 返回所有Entry的集合, 一個<鍵,值>對就是一個Entry
boolean:equals(Object o)
V:get(Object key) 返回鍵對應(yīng)的值
boolean:isEmpty() 判斷集合是否為空
Set:keySet() 返回鍵的集合
V:put(K key, V value) 添加對, 如果key鍵已存在,使用value值替換原來的值
void:putAll(Map m) 把m集合中所有的<鍵,值>對添加到當前集合中
V:remove(Object key) 只要key匹配就刪除對應(yīng)的<鍵,值>對
default boolean:remove(Object key, Object value) 刪除
default V:replace(K key, V value) 使用value值替換key原來的值
int:size() 返回<鍵,值>對的數(shù)
Collection:values() 返回所有值的集合
package com.wkcto.chapter05.map;
import java.util.HashMap;
import java.util.Map;
/**
* 演示Map的基本操作
* @author 蛙課網(wǎng)
*
*/
public class Test01 {
public static void main(String[] args) {
//1) 創(chuàng)建Map集合, 用來保存<員工姓名,員工工資>
//Map是一個接口,需要賦值實現(xiàn)類對象
Map<String, Integer> map = new HashMap<>();
//2) 添加數(shù)據(jù)
map.put("feifei", 30000);
map.put("bin", 40000);
map.put("zhang", 50000);
map.put("yong", 100000);
//3) 直接打印, 存儲順序與添加順序可能不一致
System.out.println( map );
//{bin=40000, yong=100000, zhang=50000, feifei=30000}
//4)添加重復(fù)的鍵, 如果鍵重復(fù),會使用新的value值替換原來的值, Map中的鍵不能重復(fù)的
map.put("bin", 40001);
System.out.println( map );
//5)修改
map.replace("feifei", 30002);
map.replace("yan", 6666); //替換時, 如果鍵不存在,替換不成功
System.out.println( map );
//6)判斷
System.out.println( map.isEmpty() );
System.out.println( map.size());
System.out.println( map.containsKey("feifei"));
System.out.println( map.containsValue(100000));
System.out.println( map.get("yong"));
System.out.println( map.get("cui")); //如果鍵不存在, 返回null
//7) 刪除
map.remove("bin", 40000); //刪除<"bin", 40000>對, 要求鍵與值都匹配才能刪除
System.out.println( map ); //{bin=40001, yong=100000, zhang=50000, feifei=30002}
map.remove("yong"); //只要鍵匹配就刪除
System.out.println( map );
}
}
package com.wkcto.chapter05.map;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
/**
* Map的遍歷
* @author 蛙課網(wǎng)
*
*/
public class Test02 {
public static void main(String[] args) {
//1)創(chuàng)建Map集合
Map<String, Integer> map = new HashMap<>();
//2) 添加數(shù)據(jù)
map.put("feifei", 30000);
map.put("bin", 40000);
map.put("zhang", 50000);
map.put("yong", 100000);
//3) 獲得所有鍵的集合,
Set<String> keySet = map.keySet();
System.out.println( keySet );
//4) 所有值的集合
Collection<Integer> values = map.values();
Iterator<Integer> iterator = values.iterator();
while (iterator.hasNext()) {
Integer integer = (Integer) iterator.next();
System.out.print( integer + "\t");
}
System.out.println();
//5)所有entry的集合, 一個Entry就是一個<鍵,值>對
Set<Entry<String, Integer>> entrySet = map.entrySet();
for (Entry<String, Integer> entry : entrySet) {
System.out.println( entry.getKey() + " : " + entry.getValue());
}
}
}
練習(xí)
package com.wkcto.chapter05.map;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
/**
* 統(tǒng)計字符串中每個 字符出現(xiàn)的次數(shù)
* a : 12
* c : 5
* d : 23
*
* @author 蛙課網(wǎng)
*
*/
public class Test03 {
public static void main(String[] args) {
String text = "afdfasfafasfdaczadsfazcvafdfcvfdfdaadvavdavfdaav zcvafdafadfvczxvzvafdafad";
//1) 定義一個Map保存<字符, 出現(xiàn)的次數(shù)>結(jié)果
Map<Character, Integer> map = new HashMap<>();
//2) 遍歷字符串中的每個 字符
for( int i = 0 ; i < text.length(); i++){
char cc = text.charAt(i); //取出對應(yīng)的字符
//如果字符不是第一次出現(xiàn), 把原來的次數(shù) 加 1
if ( map.containsKey(cc) ) { //Map集合中的鍵包含cc這個字符
Integer count = map.get(cc); //把cc字符原來的次數(shù)取出來
map.replace(cc, count + 1 ); //把cc字符的次數(shù)加1, 保存到map中
}else{
//如果是第一次出現(xiàn), 把<字符, 1 > 保存到集合中
map.put(cc, 1);
}
}
//3) 打印結(jié)果
Set<Entry<Character, Integer>> entrySet = map.entrySet();
for (Entry<Character, Integer> entry : entrySet) {
System.out.println( entry.getKey() + " : " + entry.getValue());
}
}
}