zoukankan      html  css  js  c++  java
  • Map接口

    文件地址:java_basic包下map_demo.java

    Collection、Set、List接口都属于单值的操作,即每次只能操作一个对象,

    Map与他们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key->value的形式存储在集合中。

    <1>实例操作一:向集合中增加和取出内容

    在Map接口中使用put(Object key,Object value)方法可以向集合中增加内容,之后通过get(E key)方法根据key找到其对应的value

    import java.util.HashMap;
    import java.util.Map;
    
    //=================================================
    // File Name       :	Map_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    
    //主类
    //Function        : 	Map_demo;
    public class Map_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		Map<String,String> map = null;	     //声明Map对象
    		map = new HashMap<String,String>();	//key和value是String类
    		map.put("zhangsan", "www.baidu.com");	//增加内容
    		map.put("lisi", "www.alibaba.com");   //增加内容
    		map.put("wangwu", "www.google.com");	//增加内容
    		String val = map.get("zhangsan");
    		
    		System.out.println("取出内容:"+val);
    	}	
    
    }
    

    <2>实例操作二:判断指定的key或者value是否存在

    import java.util.HashMap;
    import java.util.Map;
    
    //=================================================
    // File Name       :	Map_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    
    //主类
    //Function        : 	Map_demo;
    public class Map_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		Map<String,String> map = null;		//声明Map对象
    		map = new HashMap<String,String>();	//key和value是String类
    		map.put("zhangsan", "www.baidu.com");	//增加内容
    		map.put("lisi", "www.alibaba.com");	//增加内容
    		map.put("wangwu", "www.google.com");	//增加内容
    		String val = map.get("zhangsan");
    		
    		System.out.println("取出内容:"+val);
    		
    		if(map.containsKey("zhangsan")){		//查找指定的key
    			System.out.println("搜索的key存在");
    		}else{
    			System.out.println("搜索的key不存在");
    		}
    		if(map.containsValue("www.baidu.com")){		//查找指定的value
    			System.out.println("搜索的value存在");
    		}else{
    			System.out.println("搜索的value不存在");
    		}
    	}	
    
    }
    

    <3>实例操作三:输出全部的key

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    //=================================================
    // File Name       :	Map_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    
    //主类
    //Function        : 	Map_demo;
    public class Map_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		
    		Map<String,String> map = null;		//声明Map对象
    		map = new HashMap<String,String>();	//key和value是String类
    		map.put("zhangsan", "www.baidu.com");	//增加内容
    		map.put("lisi", "www.alibaba.com");	//增加内容
    		map.put("wangwu", "www.google.com");	//增加内容
    		
    		Set<String> keys = map.keySet();		//取得所有的key
    		Iterator<String> iter = keys.iterator();	//实例化Iterator
    		
    		System.out.println("全部的key:");
    		while(iter.hasNext()){
    			String str = iter.next();		//取出集合的key
    			System.out.println(str+"、");
    		}
    	}	
    
    }
    

    <4>实例操作三:输出全部的value

    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    //=================================================
    // File Name       :	Map_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    
    //主类
    //Function        : 	Map_demo;
    public class Map_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		
    		Map<String,String> map = null;		//声明Map对象
    		map = new HashMap<String,String>();	//key和value是String类
    		map.put("zhangsan", "www.baidu.com");	//增加内容
    		map.put("lisi", "www.alibaba.com");	//增加内容
    		map.put("wangwu", "www.google.com");	//增加内容
    			
    		Collection<String> values = map.values();		//取得所有的value
    		Iterator<String> iter = values.iterator();		//实例化Iterator
    		System.out.println("全部的values:");
    		while(iter.hasNext()){
    			String str = iter.next();			//取出集合的key
    			System.out.println(str+"、");
    		}
    	}	
    
    }
    

    旧的子类:Hashtable

    Hashtable也是Map中的一个子类,属于旧的操作类

    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    //=================================================
    // File Name       :	Map_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    
    //主类
    //Function        : 	Map_demo;
    public class Map_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		
    		Map<String,String> map = null;		//声明Map对象
    		map = new Hashtable<String,String>();	//key和value是String类
    		map.put("zhangsan", "www.baidu.com");	//增加内容
    		map.put("lisi", "www.alibaba.com");	//增加内容
    		map.put("wangwu", "www.google.com");	//增加内容
    		
    		Set<String> keys = map.keySet();		//取得所有的key
    		Iterator<String> iter = keys.iterator();	//实例化Iterator
    		System.out.println("全部的key:");
    		while(iter.hasNext()){
    			String str = iter.next();		//取出集合的key
    			System.out.println(str+"、");
    		}
    		Collection<String> values = map.values();	//取得所有的value
    		Iterator<String> iter2 = values.iterator();	//实例化Iterator
    		System.out.println("全部的values:");
    		while(iter2.hasNext()){
    			String str = iter2.next();		//取出集合的value
    			System.out.println(str+"、");
    		}
    	}	
    
    }
    

     

    排序的子类:TreeMap

    排序后输出

    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    import java.util.TreeMap;
    
    //=================================================
    // File Name       :	Map_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    
    //主类
    //Function        : 	Map_demo;
    public class Map_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		
    		Map<String,String> map = null;		//声明Map对象
    		map = new TreeMap<String,String>();	//实例化Map对象
    		map.put("B", "www.baidu.com");	    //增加内容
    		map.put("A", "www.alibaba.com");	//增加内容
    		map.put("C", "www.google.com");	    //增加内容
    		Set<String> keys = map.keySet();		//取得所有的key
    		Iterator<String> iter = keys.iterator();	//实例化Iterator
    		System.out.println("全部的key:");
    		while(iter.hasNext()){
    			String str = iter.next();		//取出集合的key,排序后输出
    			System.out.println(str+"、");
    		}
    	}	
    
    }
    

     弱引用类:WeakHashMap

    之前的Map子类中的数据都是使用强引用保存的,即里面的内容不管是否使用都始终在集合中保留,如果希望集合自动清理暂时不用的数据就使用WeakHashMap类。这样,当进行垃圾收集时会释放掉集合中的垃圾信息。

    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    import java.util.TreeMap;
    import java.util.WeakHashMap;
    
    //=================================================
    // File Name       :	Map_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    
    //主类
    //Function        : 	Map_demo;
    public class Map_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		
    		Map<String,String> map = null;			//声明Map对象
    		map = new WeakHashMap<String,String>();		//实例化Map对象
    		map.put(new String("B"), new String("www.baidu.com"));	//增加内容
    		map.put("A", "www.alibaba.com");			//增加内容
    		System.gc();
    		map.put("C", "www.google.com");	        //增加内容
    		System.out.println("内容:"+map);
    	}	
    
    }
    

     

    Map输出方式一:Iterator输出Map(使用 allSet = map.entrySet();,重要:开发中经常使用

    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    import java.util.TreeMap;
    import java.util.WeakHashMap;
    
    //=================================================
    // File Name       :	Map_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    
    //主类
    //Function        : 	Map_demo;
    public class Map_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		
    		Map<String,String> map = null;			//声明Map对象
    		map = new WeakHashMap<String,String>();		//实例化Map对象
    		map.put("B", "www.baidu.com");			//增加内容
    		map.put("A", "www.alibaba.com");		//增加内容
    		map.put("C", "www.google.com");			//增加内容
    		Set<Map.Entry<String, String>> allSet = null;	//声明一个Set集合,指定泛型
    		allSet = map.entrySet();					//将Map接口实例变为Set接口实例
    		Iterator<Map.Entry<String, String>> iter = null;		//声明Iterator对象
    		iter = allSet.iterator();					//实例化Iterator对象
    		while(iter.hasNext()){
    		  Map.Entry<String, String> me = iter.next();			//找到Map.Entry实例
    		  System.out.println(me.getKey()+"-->"+me.getValue());
    	}
    	}	
    
    }
    

    Map输出方式二:foreach输出Map

    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    import java.util.TreeMap;
    import java.util.WeakHashMap;
    
    //=================================================
    // File Name       :	Map_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    
    //主类
    //Function        : 	Map_demo;
    public class Map_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		
    		Map<String,String> map = null;			//声明Map对象
    		map = new WeakHashMap<String,String>();		//实例化Map对象
    		map.put("B", "www.baidu.com");			//增加内容
    		map.put("A", "www.alibaba.com");		//增加内容
    		map.put("C", "www.google.com");			//增加内容
    		
    		for(Map.Entry<String, String> me: map.entrySet()){
    			System.out.println(me.getKey()+"-->"+me.getValue());
    		}
    		
    	}	
    
    }
    

    直接使用非系统类作为Key

    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    import java.util.TreeMap;
    import java.util.WeakHashMap;
    
    //=================================================
    // File Name       :	Map_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    
    //主类
    //Function        : 	Map_demo;
    public class Map_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		
    		Map<String,person> map = null;				//声明Map对象,指定泛型类型
    		map = new HashMap<String,person>();			//实例化Map对象
    		map.put("zhangsan", new person("张三",30));
    		System.out.println(map.get("zhangsan"));
    	}	
    
    }
    

     

    key可以重复的Map集合:IdentityHashMap

    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.IdentityHashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    import java.util.TreeMap;
    import java.util.WeakHashMap;
    
    //=================================================
    // File Name       :	Map_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    
    //主类
    //Function        : 	Map_demo;
    public class Map_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		
    		Map<person,String> map = null;				//声明Map对象,指定泛型类型
    		map = new IdentityHashMap<person,String>();		//实例化Map对象
    		map.put(new person("张三",30),"zhangsan_1");
    		map.put(new person("张三",30),"zhangsan_1");
    		
    		Set<Map.Entry<person, String>> allSet = null;
    		allSet = map.entrySet();
    		Iterator<Map.Entry<person, String>> iter = null;
    		iter = allSet.iterator();
    		while(iter.hasNext()){
    		  Map.Entry<person, String> me = iter.next();		//找到Map.Entry实例
    		  System.out.println(me.getKey()+"-->"+me.getValue());
    		}
    	}	
    
    }
    
  • 相关阅读:
    表的相关内容
    数据类型
    mysql入门练习
    mysql入门
    协程
    多进程
    装饰器
    网络编程
    心路历程
    gensim的使用
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/5285697.html
Copyright © 2011-2022 走看看