java-----Map

import java.util.HashMap;
import java.util.Map;

public class MapDemo {
	/*
	 * A:Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储
       B:Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。
       C:Collection中的集合称为单列集合,Map中的集合称为双列集合。
                  需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。
	 */
	/*
	 * 2.2Map常用功能
		A:映射功能:
   			V put(K key, V value) :以键=值的方式存入Map集合
		B:获取功能:
     		V get(Object key):根据键获取值
			int size():返回Map中键值对的个数
		C:判断功能:
    		boolean containsKey(Object key):判断Map集合中是否包含键为key的键值对
    		boolean containsValue(Object value):判断Map集合中是否包含值为value键值对
 			boolean isEmpty():判断Map集合中是否没有任何键值对 
		D:删除功能:
  			void clear():清空Map集合中所有的键值对
  			V remove(Object key):根据键值删除Map中键值对
		E:遍历功能:
  			Set<Map.Entry<K,V>> entrySet():将每个键值对封装到一个个Entry对象中,再把所有Entry的对象封装到Set集合中返回
  			Set<K> keySet() :将Map中所有的键装到Set集合中返回
  			Collection<V> values():返回集合中所有的value的值的集合
	 */
	public static void main(String[] args) {
		//创建Map对象
				Map<String,String> map = new HashMap<String,String>();
				
				//V put(K key, V value) :就是将key映射到value,如果key存在,则覆盖value,并将原来的value返回
				System.out.println(map.put("ITCAST001", "张三"));
				System.out.println(map.put("ITCAST002", "李四"));
				System.out.println(map.put("ITCAST001", "王五"));
				
				//void clear() : 清空所有的对应关系  
				//map.clear();
				
				//V remove(Object key) :根据指定的key删除对应关系,
				//并返回key所对应的值,如果没有删除成功则返回null
				System.out.println(map.remove("ITCAST005"));
				
				//boolean containsKey(Object key) : 判断指定key是否存在
				System.out.println(map.containsKey("ITCAST003"));
				
				//boolean containsValue(Object value):判断指定的value是否存在
				System.out.println(map.containsValue("王五"));
				
				//boolean isEmpty() : 判断是否有对应关系
				System.out.println(map.isEmpty());
				
				//int size() : 返回对应关系的个数
				System.out.println(map.size());
				
				//V get(Object key) : 根据指定的key返回对应的value
				System.out.println(map.get("ITCAST002"));
				
				System.out.println(map);
	}

}

  

 

 

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Map2 {
//关于Map的遍历方式
	//利用keySet()方法遍历
	/*
	 * 	Map的第一种遍历方式:
	 * 			首先召集所有的丈夫
	 * 			遍历所有的丈夫
	 * 			获取每一个丈夫
	 * 			让每一个丈夫去找他自己的媳妇
	 */
	public static void main(String[] args) {
		//创建Map对象
		Map<String, String>map=new HashMap<String, String>();//父类继承子类
		//添加映射关系
		map.put("谢婷疯", "张箔纸");
		map.put("陈关西", "钟欣桶");
		map.put("李亚碰", "王飞");
		//遍历Map对象
		Set<String> keys=map.keySet();//获取映射中的所有的键
		//遍历所有的键
		for(String key:keys) {
			//让每一个键找到他们对应的值就可以了
			String value=map.get(key);
			System.out.println("键:"+key+"----"+"值:"+value);
			/*
			 *  键:谢婷疯----值:张箔纸
				键:李亚碰----值:王飞
				键:陈关西----值:钟欣桶
			 */
		}
		//第二种方式,利用entrySet()遍历Map
		Set<Map.Entry<String, String>> entrys=map.entrySet();//同样的获得所有键值信息
		for(Map.Entry<String, String> entry:entrys)
		{
			String key=entry.getKey();//获得每一对键值对中的键
			String valueString=entry.getValue();//获得每一对键值对中的值
			System.out.println("Key:"+key+"----"+"Value:"+valueString);
			/*
			 *  Key:谢婷疯----Value:张箔纸
				Key:李亚碰----Value:王飞
				Key:陈关西----Value:钟欣桶
			 */
		}
	}
}

  

 

 

排序功能:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Map2Demo {
	public static void main(String[] args) {
		Map<String, String> map = new HashMap<String, String>();
		map.put("b", "b");
		map.put("a", "c");
		map.put("c", "a");
		// 通过ArrayList构造函数把map.entrySet()转换成list
		List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());
		// 通过比较器实现比较排序
		Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
		    @Override
		    //比较函数,用entey()产生键对值。
		    public int compare(Map.Entry<String, String> mapping1, Map.Entry<String, String> mapping2) {
		        return mapping1.getKey().compareTo(mapping2.getKey());
		        //mapping1的键和mapping2的键比较。键是升序。
		    }
		});
		for (Map.Entry<String, String> mapping : list) {//遍历输出
		    System.out.println(mapping.getKey() + " :" + mapping.getValue());
		}
	}
}

  

TreeMap排序:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

public class Map2Demo {
	public static void main(String[] args) {
		Map<String, String> map = new TreeMap<String, String>(new Comparator<String>() {
		    @Override
		    public int compare(String o1, String o2) {
		        // 降序排序
		        return o2.compareTo(o1);
		    }
		});
		map.put("b", "b");
		map.put("a", "c");
		map.put("c", "a");
		for (String key : map.keySet()) {
		    System.out.println(key + " :" + map.get(key));
		}
	}
}

  

常用API

方法描述
clear() 从 Map 中删除所有映射
remove(Object key) 从 Map 中删除键和关联的值
put(Object key, Object value) 将指定值与指定键相关联
putAll(Map t) 将指定 Map 中的所有映射复制到此 map
entrySet() 返回 Map 中所包含映射的 Set 视图。Set 中的每个元素都是一个 Map.Entry 对象,可以使用 getKey() 和 getValue() 方法(还有一个 setValue() 方法)访问后者的键元素和值元素
keySet() 返回 Map 中所包含键的 Set 视图。删除 Set 中的元素还将删除 Map 中相应的映射(键和值)
values() 返回 map 中所包含值的 Collection 视图。删除 Collection 中的元素还将删除 Map 中相应的映射(键和值)
get(Object key) 返回与指定键关联的值
containsKey(Object key) 如果 Map 包含指定键的映射,则返回 true
containsValue(Object value) 如果此 Map 将一个或多个键映射到指定值,则返回 true
isEmpty() 如果 Map 不包含键-值映射,则返回 true
size() 返回 Map 中的键-值映射的数目

 

posted @ 2019-07-05 02:22  薄眠抛却陈年事。  阅读(174)  评论(0编辑  收藏  举报