java HashMap详解及实例代码

发布时间 - 2026-01-10 22:47:50    点击率:

java HashMap

/*
* Map集合的特点
* 将键映射值的对象,一个映射不能包含重复的值;每个键最多只能映射到一个值
* 
* Map集合和Collection集合的区别?
* Map集合存储元素是成对出现的,Map集合的键是唯一的,就是可重复的。可以把这个理解为:夫妻对
* Collection集合存储元素是单独出现的,Collection的儿子Set是唯一的,List是可重复的,可以把这个理解为:光棍
* 
* 注意:
* Map集合的数据结构值针对键有效,限值无效
* Collection集合的数据结构是针对元素有效
* 
* Map集合的功能概述:
* 1:添加功能
* V put(K key,V value);//添加元素
* 如果键是第一次存储,就直接存储元素,返回null
* 如果键不是第一次存储,就用值把以前的值替换掉,返回以前的值
* 
* 2:删除功能
* void clear();//移除所有的键值对元素
* V remove(Object key);//根据键删除键值对元素,并把值返回
* 
* 3:判断功能
* boolean containsKey(Object key);//判断集合是否包含指定的键
* boolean containsValue(Object value);//判断集合是否包含指定的值
* boolean isEmpty();//判断集合是否为空
* 
* 4:获取功能
* set<Map,Entry<E,V>> entrySet();获取键值对的对象集合
* V get(Object key);//根据键获取值
* Set<K> keySet();//获取集合中所有键的集合
* Collection<V> values();//获取集合中所有值的集合
* 
* 5:长度功能
* int size();//返回集合中的键值对的对数
* */

 Map集合的遍历

方式1,根据键查询值

获取所有键的集合

遍历键的集合,获取每一个键

根据键,查询值

方式2,根据键值对的对象查询键和值

获取所有键值对的对象的集合

遍历键值对的对象的集合,获取到每一个键值对的对象

根据键值对的对象,查询键和值

方式1,根据键查询值

/*

* Map集合的遍历,根据键查询值
* 
* 思路:
* A:获取所有的键
* B:遍历键的集合,获取得到每一个键
* C:根据键查询值
* */

 

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
 
/*
 * Map集合的遍历,根据键查询值
 *
 * 思路:
 * A:获取所有的键
 * B:遍历键的集合,获取得到每一个键
 * C:根据键查询值
 * */
 
public class IntegerDemo {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
 
    Map<String, String> map = new HashMap<String, String>();
 
    map.put("hello", "world");
    map.put("java", "c++");
    map.put("sql", "os");
 
    System.out.println(map);
 
    // A:获取所有的键
    Set<String> set = map.keySet();
 
    // B:遍历键的集合,获取得到每一个键
    for (String key : set) {
      // C:根据键查询值
      String value = map.get(key);
      System.out.println(key + "---" + value);
    }
  }
}

方式2,根据键值对的对象查询键和值

/*
* Map集合的遍历,根据对象查询键和值
* 
* 思路:
* A:获取所有的键值对对象的集合
* B:遍历键值对对象的集合,得到每一个键值对的对象
* C:获取键和值
* */

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
 
/*
 * Map集合的遍历,根据对象查询键和值
 *
 * 思路:
 * A:获取所有的键值对对象的集合
 * B:遍历键值对对象的集合,得到每一个键值对的对象
 * C:获取键和值
 * */
 
public class IntegerDemo {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
 
    Map<String, String> map = new HashMap<String, String>();
 
    map.put("hello", "world");
    map.put("java", "c++");
    map.put("sql", "os");
 
    System.out.println(map);
 
    // A:获取所有的键值对对象的集合
    Set<Map.Entry<String, String>> set = map.entrySet();
 
    // B:遍历键值对对象的集合,得到每一个键值对的对象
    for (Map.Entry<String, String> me : set) {
      // C:获取键和值
      String key = me.getKey();
      String value = me.getValue();
      System.out.println(key + "---" + value);
    }
  }
}
 


 


/*
* 1:HashMap和Hashtable的区别?
* HashMap线程不安全,效率高,允许null键和null值
* Hashtable线程安全,效率低,不允许null键和null值
* 
* 2:List,Set,Map等接口是否都继承于Map接口?
* List,Set不是继承自Map接口,它们继承自Collection接口
* Map接口本身就是一个顶层接口
* */
import java.util.HashMap;
import java.util.Hashtable;
 
public class IntegerDemo {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
 
    HashMap<String, String> hm = new HashMap<String, String>();
    Hashtable<String, String> ht = new Hashtable<String, String>();
 
    hm.put("hello", "world");
    hm.put("java", "c++");
    hm.put(null, "sql");
 
    ht.put("hello", "world");
    ht.put("java", "c++");
    ht.put(null, "sql");// Exception in thread "main"
              // java.lang.NullPointerException
  }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java  # HashMap  # HashMap详解  # HashMap实例代码  # java HashMap内部实现原理详解  # 在Java8与Java7中HashMap源码实现的对比  # 详解Java HashMap实现原理  # java 中HashMap、HashSet、TreeMap、TreeSet判断元素相同的几种方法比较  # Java用自定义的类作为HashMap的key值实例  # java HashMap  # TreeMap与LinkedHashMap的详解  # java面试题——详解HashMap和Hashtable 的区别  # AngularJS操作键值对象类似java的hashmap(填坑小结)  # java使用hashMap缓存保存数据的方法  # 全面解析Java中的HashMap类  # 剖析Java中HashMap数据结构的源码及其性能优化  # java HashMap扩容详解及实例代码  # 键值  # 遍历  # 数据结构  # 是唯一  # 希望能  # 就用  # 谢谢大家  # 并把  # 不安全  # 移除  # 为空  # 最多只能  # 限值  # 效率高  # remove  # Object  # Entry  # containsValue  # gt  # boolean 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  如何在万网利用已有域名快速建站?  如何快速登录WAP自助建站平台?  详解MySQL数据库的安装与密码配置  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  如何做网站制作流程,*游戏网站怎么搭建?  北京网站制作的公司有哪些,北京白云观官方网站?  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  如何在建站之星绑定自定义域名?  Laravel如何集成Inertia.js与Vue/React?(安装配置)  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  如何批量查询域名的建站时间记录?  音响网站制作视频教程,隆霸音响官方网站?  网页设计与网站制作内容,怎样注册网站?  Laravel如何优化应用性能?(缓存和优化命令)  如何用虚拟主机快速搭建网站?详细步骤解析  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  百度浏览器如何管理插件 百度浏览器插件管理方法  如何在万网ECS上快速搭建专属网站?  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  如何在阿里云通过域名搭建网站?  开心动漫网站制作软件下载,十分开心动画为何停播?  如何利用DOS批处理实现定时关机操作详解  详解vue.js组件化开发实践  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  如何用花生壳三步快速搭建专属网站?  IOS倒计时设置UIButton标题title的抖动问题  如何快速配置高效服务器建站软件?  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  香港服务器部署网站为何提示未备案?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  图册素材网站设计制作软件,图册的导出方式有几种?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  Android okhttputils现在进度显示实例代码  用v-html解决Vue.js渲染中html标签不被解析的问题  bootstrap日历插件datetimepicker使用方法  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  Python文本处理实践_日志清洗解析【指导】  Laravel如何使用模型观察者?(Observer代码示例)  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程