2021-01-24

day_18_Map

Map : 无序 可重复

  •  value可重复, key不可重复
    
  • Map和 集合的操作 基本都是一样的
  • Object put(Object key,Object value) : 向map中添加键值对
  • void clear() : 清空
  • int size() : 添加个数
  • boolean isEmpty() : 判断是否为空
  • Object get(Object key) : 根据key 获取value
  • Collection values() : 获取map中的所有value值,以集合形式返回
  • booelan containsKey(Object key) : 判断是否包含某个key
  • booelan containsValue(Object value) : 判断是否包含某个value
  • Set keySet() : 获取map中的所有key,以Set集合形式返回
  • Set entrySet() : 返回map中的键值对映射(key=value),以Set集合形式返回
  • V remove(Object key) : 根据key删除指定映射关系,返回value值

map不能直接遍历,可以通过keySet 等方法进行间接遍历

Map用于保存具有映射关系的数据,因此Map集合里保存两组值。

  1. 一组值用于保存key,一组值用于保存value
  2. key~value之间存在单向一对一关系,通过指定key可以找到唯一的value值
  3. key和value都可以是任何引用类型对象
  4. 允许存在value为null,但是只允许存在一个key为null
public class Map_01 {
	public static void main(String[] args) {
		Map map = new HashMap();
		map.put("A", "one");
		map.put("B", "two");
		map.put("C", "three");
		map.put(1003, "rose");
		map.put('A', 1000);
		map.put(65, 1000);
		map.put("'A'", 1000);
		map.put("A", 3000);
		// 支持 key和 value 都是null,但是没什么意义,并且只能有一个key为null
		map.put(null, null);
		// 8
		System.out.println(map.size());
		
		// 调用"1003"的hashCode值,然后进行hash 得到数组下标
		// 用该对象调用equals方法,和数组中链表的所有对象的key进行比较
		// 此对象为 字符串1003 而 map中 没有,只有一个Integer的1003
		// false
		System.out.println(map.containsKey("1003"));
		
		// 只能去挨个遍历比较
		// true
		System.out.println(map.containsValue("rose"));
		// 先根据"C" 调用HashCode 然后进行hash,得到数组下标,挨个和链表中对象进行equals比较
		// 找到对应的对象后,获取其value值
		// three
		System.out.println(map.get("C"));
		
		System.out.println("========");
		// 获取所有的value 并遍历
		Collection c  = map.values();
		for (Object object : c) {
			System.out.println(object);
		}
		
		// 根据key,删除指定键值对,并返回value值
		// three
		System.out.println(map.remove("C"));
		System.out.println("------------------");
		// 把map中所有的key取出,返回set
		Set keys = map.keySet();
		for (Object key : keys) {
			System.out.println(key+" : "+map.get(key));
		}
		System.out.println("====");
		
		// 把键值对封装到entry中并以set形式返回
		Set entrys = map.entrySet();
		for (Object object : entrys) {
			// 转换为Entry类型
			Entry entry = (Entry) object;
			System.out.println(entry.getKey()+" : "+entry.getValue());
		}
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值