Map集合简介

本文介绍了Map集合,其存放一组组映射关系key=value。与Set集合方法使用类似,但可嵌套。介绍了put方法及entrySet、keySet两种遍历方法。还提及TreeMap使用方法与TreeSet类似,HashMap泛型要用包装类或引用数据类型,并给出统计字符串中字符出现次数的思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Map集合

map集合中存放的都是一组组映射关系 key=value

初识map

和set集合方法使用都差不多 但map可以在集合中允许嵌套

在这里插入图片描述

常见方法

1、增加
put(K key, V value) 
putAll(Map<? extends K,? extends V> m) 

2、删除
clear() 
remove(Object key) 

3、判断
containsKey(Object key) 
containsValue(Object value) 
isEmpty() 

4、获取
get(Object key)
size()
values()  

entrySet() 
keySet()

put

  1. 添加集合元素的同时,它可以编辑原有的元素
    如果说集合中没有key对应的value,那么久住集合中添加元素
    如果说集合中对应的key有value值,则代表替换原有的值
  2. 返回替换前key对应的value值

在这里插入图片描述
entrySet ,keySet 是map特有的遍历的方法
但他们的区别就是 entrySet打印取值 (entry 是一个类) 要把键值一对对都找到能打印出来
而keySet可以根据键一一找到值打印输出

在这里插入图片描述

在后面之所以乘上数字,是防止键值相加起来和别的键值相加起来是一样的,而被去重复

 public int hashCode() {
	return this.getName().hashCode()+this.getAge()*12;
}

TreeMap

它的使用方法和我的上一篇set篇里的TreeSet一样,详情请看我的上一篇在这里插入图片描述

HashMap

map集合中的泛型要使用包装类,或者是引用数据类型

  • 统计字符串中字符出现次数
  • @author Administrator
  • 思考:
  • 1.统计出现次数 2.在根据字母排序
  • 统计功能
  • 1’将字符串转为字符数组,将这个字符串中的字符当做map集合中的key,将出现的次数最为value值
  • 2’将字符第一次出现的时候,那么用在它的集合中进行寻找,返回值必然为null,之后将字符对应的值改为1
  • 3’如果说该字符不是第一次出现,该字符对应的值不为null并且 +1

先自定义一个count方法,再重写

在这里插入图片描述
代码如下

private static String count(String str) {
		char[] charArray = str.toCharArray();
		Map<Character, Integer> map = new TreeMap<>();
		for (char c : charArray) {
			Integer value = map.get(c);
			if (value == null) {
				map.put(c, 1);
			}else {
				map.put(c, ++value);
			}
		}
		StringBuffer sb = new StringBuffer();
		for (Map.Entry<Character, Integer> entry : map.entrySet()) {
			sb.append(entry.getKey()+"("+entry.getValue()+")");
		}
		return sb.toString();
	}
小结:

	Map

	Hashtable:底层是哈希表数据结构,不可以存入null键null值,该集合石线程同步的,jdk1.0,效率低

	HashMap:底层是哈希表数据结构,允许使用null值和null键,该集合是不同步的。将Hashtable替代;jdk1.2,效率高

	TreeMap:底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序

	 

	注意:

	添加元素时,如果键已经在集合中存在,那么后添加的值会覆盖原来的值,并且put方法会将原有的值返回
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值