Java——Map

Map 接口

  • 存储键值对类型的数据,存储的每一个数据都是由一个键值对组成
  • key-value 映射
  • Map中存储数据的特点->无序(存放的书序与内部存储的顺序不一致)
  • key—> 无序的,不可重复,唯一的—>Set集合
  • value–> 无序的,可重复 —>Collection集合
  • 注意:
  • 一个key只能匹配一个value
  • 如果一个key想要匹配多个value值,可以存储当一个集合中(ArrayList)
  • 去重:
  • 根据key的值做去重,如果存放相同key的映射,值value会覆盖
  • 遍历:
  • keySet() 获取所有的key,根据key可以索取value
  • values() 获取所有的value值,没有办法获取到key
  • Set<Map.Entry<K,V>> entrySet() 把map集合中的每一个映射封装成为Map.Entry类型的数据,放入一个set集合中返回
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class MapDemo01 {
	public static void main(String[] args) {
		Map<String,Integer> map = new HashMap();
		//存储
		map.put("张三", 180);
		map.put("王五", 190);
		map.put("李四", 180);
		map.put("胡歌", 185);
		map.put("彭于晏", 183);
		
		System.out.println(map);
		System.out.println(map.size());
		
		map.put("李四", 170);
		System.out.println(map);
		
		//获取
		System.out.println(map.get("张三"));
		
		//删除
		System.out.println(map.remove("李四"));
		System.out.println(map);
		
		/*
		 *   boolean containsKey(Object key) 
			          如果此映射包含指定键的映射关系,则返回 true。 
			 boolean containsValue(Object value)  
		 */
		System.out.println(map.containsKey("王五"));
		System.out.println(map.containsValue(170));
		
		System.out.println("--------遍历---------");
		System.out.println("--------keySet()-----------");
		Set<String> keys = map.keySet();
		//set的遍历方式与Collection相同,只能通过增强for,迭代器iterator遍历
		for(String str : keys) {
			System.out.println(str+"--->"+map.get(str));
		}
		
		System.out.println("--------values()-----------");
		Collection<Integer> col = map.values();
		System.out.println(col);
		
		System.out.println("------Set<Map.Entry<K,V>> entrySet()-----");
		Set<Map.Entry<String,Integer>> set = map.entrySet();
		for(Map.Entry<String,Integer> m : set) {
			System.out.println(m.getKey()+"-->"+m.getValue());
		}
	}	
}
发布了26 篇原创文章 · 获赞 23 · 访问量 1591

猜你喜欢

转载自blog.csdn.net/GlobalZhang/article/details/105264399