Map集合之HashMap及其常用方法

2022-09-16 13:16:46

Map有什么特点?
1、增加元素使用的是put();
2、采用了 Key-value键值对映射的方式进行存储;
3、key在Map里面是唯一的但是valsue可以重复,一个key对应一个value;

HashMap ( Map的实现类 ) 的特点:
1、键是哈希表结构,可以保证键的唯一性,
2、当向已存在key的Map中添加元素时,会覆盖掉旧值,并将旧值返回。
3、它允许使用 null 值和 null 键,但不保证映射的顺序,特别是它不保证该顺序恒久不变(即不会保证存储的顺序与输出的顺序恒久不变)。

Map中元素,可以将key序列、value序列单独抽取出来。
1、使用keySet()抽取key序列,将map中的所有keys生成一个Set。
2、使用values()抽取value序列,将map中的所有values生成一个Collection。

为什么keySet()生成Set,values()生成Collection?
答:因为key总是独一无二的(Set具有唯一性),value允许重复;

HashMap常用方法实例:

package cn.zyq.Aug01;/**
 * Map相关练习
 */import java.util.Collection;import java.util.HashMap;import java.util.Map;import java.util.Set;import java.util.Map.Entry;publicclassTest{publicstaticvoidmain(String[] args){
		Map<Integer, String> map=newHashMap<Integer, String>();/**
		 ** 添加元素
		 */
		map.put(101,"MM");
		map.put(102,"OO");
		map.put(103,"PP");
		map.put(104,"QQ");
		map.put(103,"nn");/**
		 ** 获取map长度
		 *///因为key值唯一,所以会将相同的覆盖
		System.out.println("map长度为:"+map.size());/**
		 ** 遍历map元素,获取所有的键
		 */for(Integer key:map.keySet()){
			System.out.println(key+":"+map.get(key));}/**
		 ** 拿出key值,返回一个set型的集合
		 */
		Set<Integer> set= map.keySet();
		System.out.println("拿出key,返回set型集合");
		System.out.println(set);//通过keySet()的返回值输出value的值
		System.out.println("通过keySet()输出value:");for(Integer key:set){
			System.out.println(map.get(key));}/**
		 ** 拿出value值,返回Collection型集合
		 */
		Collection<String> col= map.values();
		System.out.println("拿出value,返回Collection型集合");
		System.out.println(col);/**
		 **删除key为103的键值
		 */
		map.remove(103);
		System.out.println("删除后元素的键值对个数为:"+map.size());/**
		 ** 判断是否存在为key值的键
		 */
		System.out.println("判断是否存在key=101的键:"+map.containsKey(101));/**
		 ** 判断是否存在为value值的键
		 */
		System.out.println("判断是否存在value=MM的键:"+map.containsValue("MM"));/**
		 ** 判断map是否为空
		 */
		System.out.println("判断map是否为空:"+map.isEmpty());/**
		 ** get(),通过key的值得到value的值
		 */int getkey=101;
		String s= map.get(getkey);
		System.out.println(getkey+"对应的值为:"+s);/**
		 ** 通过map中entrySet()方法,输出键值对
		 */
		Set<Entry<Integer, String>> se= map.entrySet();for(Entry<Integer, String> key:se){
			System.out.println(key);//两种方式均可//System.out.println(key.getKey()+":"+key.getValue());}}}

执行结果供参考:
在这里插入图片描述

  • 作者:YaJeanZhang_
  • 原文链接:https://blog.csdn.net/weixin_43718414/article/details/98107728
    更新时间:2022-09-16 13:16:46