• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Java面向對象
    Java異常
    Java數組
    Java常用類
    Java集合
    Java IO流
    Java線程
    Java反射
    Socket編程
    Java注解開發
    Java GoF設計模式
    HashMap
    Java內存模型
    Java線性表

    Java中Map基本操作

     

     

    void:clear() 清空集合中所有的<鍵,值>對

     

    boolean:containsKey(Object key) 判斷是否包含指定的鍵

     

    boolean:containsValue(Object value) 判斷是否包含指定的值

     

    Set>:entrySet() 返回所有Entry的集合, 一個<鍵,值>對就是一個Entry

     

    boolean:equals(Object o)

     

    V:get(Object key) 返回鍵對應的值

     

    boolean:isEmpty() 判斷集合是否為空

     

    Set:keySet() 返回鍵的集合

     

    V:put(K key, V value) 添加對, 如果key鍵已存在,使用value值替換原來的值

     

    void:putAll(Map m) 把m集合中所有的<鍵,值>對添加到當前集合中

     

    V:remove(Object key) 只要key匹配就刪除對應的<鍵,值>對

     

    default boolean:remove(Object key, Object value) 刪除

     

    default V:replace(K key, V value) 使用value值替換key原來的值

     

    int:size() 返回<鍵,值>對的數

     

    Collection:values() 返回所有值的集合

     

    package com.wkcto.chapter05.map;
    
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * 演示Map的基本操作
     * @author 蛙課網
     *
     */
    public class Test01 {
    
    	public static void main(String[] args) {
    		//1) 創建Map集合, 用來保存<員工姓名,員工工資>
    		//Map是一個接口,需要賦值實現類對象
    		Map<String, Integer>  map = new HashMap<>();
    		
    		//2) 添加數據
    		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)添加重復的鍵, 如果鍵重復,會使用新的value值替換原來的值, Map中的鍵不能重復的
    		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 蛙課網
     *
     */
    public class Test02 {
    
    	public static void main(String[] args) {
    		//1)創建Map集合
    		Map<String, Integer>  map = new HashMap<>();
    		
    		//2) 添加數據
    		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());
    		}
    		
    	}
    
    }

     

     

    練習

    package com.wkcto.chapter05.map;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    
    /**
     * 統計字符串中每個 字符出現的次數
     * 	a : 12
     * 	c : 5
     * 	d : 23
     * 
     * @author 蛙課網
     *
     */
    public class Test03 {
    
    	public static void main(String[] args) {
    		String  text = "afdfasfafasfdaczadsfazcvafdfcvfdfdaadvavdavfdaav zcvafdafadfvczxvzvafdafad";
    		
    		//1) 定義一個Map保存<字符, 出現的次數>結果
    		Map<Character, Integer> map = new HashMap<>();
    		
    		//2) 遍歷字符串中的每個 字符
    		for( int i = 0  ; i < text.length(); i++){
    			char cc = text.charAt(i); 			//取出對應的字符
    			//如果字符不是第一次出現, 把原來的次數 加 1
    			if ( map.containsKey(cc) ) { 		//Map集合中的鍵包含cc這個字符
    				Integer count = map.get(cc); 	//把cc字符原來的次數取出來
    				map.replace(cc, count + 1 ); 	//把cc字符的次數加1, 保存到map中
    			}else{
    				//如果是第一次出現,  把<字符, 1 > 保存到集合中
    				map.put(cc, 1);
    			}
    		}
    		//3) 打印結果
    		Set<Entry<Character, Integer>> entrySet = map.entrySet();
    		for (Entry<Character, Integer> entry : entrySet) {
    			System.out.println( entry.getKey() + " : " + entry.getValue());
    		}
    	}
    
    }

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏