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 中的键-值映射的数目 | 
    一纸高中万里风,寒窗读破华堂空。
莫道长安花看尽,由来枝叶几相同?
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号