zoukankan      html  css  js  c++  java
  • JavaSE Map的使用

    1.Map概述

    Map与Collection并列存在。用来保存具有映射关系的数据:Key-Value

    Map 中的 key 和  value都能够是不论什么引用类型的数据
    Map 中的 key 用Set来存放。不同意反复,所以Map中的Set类型须要重写hashCode()和equals()方法,由于引用对象是通过这两个方法来保证Set的唯一性。
    Map中的key 和 value之间存在单向一对一关系,即通过指定的key总能找到唯一的、确定的 value。

    LinkedHashMap用一个链表维护加入进Map的顺序,遍历得到的顺序和加入顺序一致。




    2.Map中的主要方法

    package org.tizen.test;
    
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    import org.junit.Test;
    
    /*
     * 
    		Object put(Object key,Object value)  向Map中加入一个key以及value
    		Object remove(Object key) 删除制定的 key以及相应的value,即删除制定的key-value对
    		void putAll(Map t)
    		void clear()
    		Object get(Object key)  获取制定的key的value值,如无。返回null
    		boolean containsKey(Object key)
    		boolean containsValue(Object value)
    		int size()
    		boolean isEmpty()
    		boolean equals(Object obj)
    
     */
    public class TestMain {
    	
    	@Test  
        public void TestMapAPI()  
        {        
            //遍历得到的顺序和加入顺序不一致       
            Map map = new HashMap<>();
            map.put("image", "/opt/image.jpg");
            map.put("title", "setting");
            map.put("size", 80);
            m.put("image", "/opt/image1.jpg");//覆盖之前的map.put("image", "/opt/image.jpg"); 
            System.out.println(map.size());//3
            System.out.println(map.get("image"));
            System.out.println(map.get("title"));
            System.out.println(map.get("size"));
            boolean b = map.containsValue("setting");   
            System.out.println(b);//true    
        }
    }
    
    

     

    @Test
    	/*
    	 * * 元视图操作的方法:Set keySet() Collection values() Set entrySet()
    	 */
    	public void Test2() {
    		Map m = new HashMap();
    		m.put("123a", 97);
    		m.put("b", 98);
    		m.put("AbC", 1221);
    		m.put(null, 1);
    		// 1.得到Map的KeySet,遍历
    		Set s = m.keySet();
    		System.out.println("遍历set");
    		for (Object o : s) {
    			System.out.println(o);
    		} // 2.遍历values
    		Collection c = m.values();
    		System.out.println("增强for循环遍历values");
    		for (Object o : c) {
    			System.out.println(o);
    		}
    		System.out.println("迭代器遍历values");
    		Iterator i = c.iterator();
    		while (i.hasNext()) {
    			System.out.println(i.next());
    		}
    		// 3.遍历key-value对 by 增强for循环遍历
    		Set entry1 = m.entrySet();
    
    		for (Object o : entry1) {
    			// need cast
    			Map.Entry me = (Map.Entry) o;
    			System.out.println(me.getKey() + ":" + me.getValue());
    		}
    		// 4.遍历key-value对 by iterator
    		Set entrySet = m.entrySet();
    		Iterator iterator = entrySet.iterator();
    		while (iterator.hasNext()) {
    			Map.Entry entry2 = (Map.Entry) iterator.next();
    			System.out.println(entry2.getKey() + ":" + entry2.getValue());
    		}
    
    	}


    @Test
    	// 自然排序
    	public void test3() {
    		Map map = new LinkedHashMap();
    		map.put("AA", 213);
    		map.put("BB", 45);
    		map.put(123, "CC");
    		map.put(null, null);
    		map.put("AABB", 89);
    		Set set1 = map.keySet();
    		for (Object obj : set1) {
    			System.out.println(obj + ":" + map.get(obj));
    		}
    	}


    @Test
    	public void test4() {
    		Map map = new LinkedHashMap();
    		map.put("AA", 213);
    		map.put("BB", 45);
    		map.put(123, "CC");
    		map.put(null, null);
    
    		Set<Map.Entry> set = map.entrySet();
    		Iterator it = set.iterator();
    		while (it.hasNext()) {
    			Map.Entry m = (Map.Entry) it.next();
    			System.out.println(m.getKey() + " = " + m.getValue());
    		}
    	}


  • 相关阅读:
    不安装oracle客户端也可以使用pl/sql developer
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    c语言第一次作业1
    C语言I博客作业04
    C语言I博客作业03
    C语言I博客作业02,
    ASP.NET url重写与图片防盗链 I
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7205304.html
Copyright © 2011-2022 走看看