Map集合
Map集合
- Map集合是双列集合的顶层接口,用来存储简直对对象(一对数据),其中键是唯一的,值的数据可以重复。
- 因为Map是接口,所以通过创建子类来实现创建Map对象
创建方法:Map<K,V> map = new HashMap<>(); //K指的是键的类型;V指的是值的类型。
Map方法:
方法 | 描述 |
---|---|
V put(K key, V value) | 添加元素 |
V remove(Object key) | 如果存在,从该地图中删除一个键的映射。 |
boolean containsKey(Object key) | 判断集合中是否包含指定的键 |
boolean containsValue(Object value) | 判断集合中是否包含指定的值 |
boolean isEmpty() | 判断集合是否为空 |
void clean() | 移除所有的键值对元素 |
int size() | 集合的长度,指的是Map实例中键的个数 |
V get(Object key) | 获取键对应的值 |
Set keySet() | 获取所有键的集合 |
Collection values() | 获取所有值的集合 |
Set<Map.Entry<K,V>> entrySet() | 获取所有键值对对象的集合 |
代码实现:统计字符出现的次数
//创建HashMap对象
HashMap<Character, Integer> hm = new HashMap<>();
Scanner sc = new Scanner(System.in);
//提示输出
System.out.println("请输入一串字符:");
//接收输入的字符串
String str = sc.next();
//拆分字符串成字符串数组
char[] chars = str.toCharArray();
//遍历字符串数组
for (char ch : chars) {
//判断数组中的字符是否在HashMap中存在
if (!hm.containsKey(ch)) {
//不存在,将字符做为键,1作为值放入HashMap集合中
hm.put(ch, 1);
} else { //存在,将字符作为键,获取对应的值加1
hm.put(ch, hm.get(ch) + 1);
}
}
//遍历HashMap集合
Set<Map.Entry<Character, Integer>> entrys = hm.entrySet();
for (Map.Entry<Character, Integer> entry : entrys) {
System.out.println(entry.getKey()+"出现了"+entry.getValue()+"次。");
}
运行结果:
请输入一串字符:
aassddffewahxa
a出现了4次。
s出现了2次。
d出现了2次。
e出现了1次。
f出现了2次。
w出现了1次。
h出现了1次。
x出现了1次。