当前位置: 首页 > news >正文

集合(开发重点)

三、Map集合体系
1. Map集合的特点:【基础重点】
(1) 存储任意的 键值对 (key-value)Map中一个集合元素是一个键值对
(2) 键:无序、无下标、不允许重复(唯一)
(3) 值:无序、无下标、允许重复
2. Map 集合中的方法
(1) V put(K key,V value) : Map集合中添加一个键值对,如果键在Map中没有存在,则直接添加,返回值为
null;如果键在Map中已经存在,则新的Value覆盖原有的value数据,被覆盖的value数据作为返回
值进行返回。【开发重点】
(2) V remove(K key):根据键,删除对应的键值对,被删除的值(value)作为返回值返回。
(3) V get(K key):根据键,返回对应的值(value)。【重点】
(4) boolean containsKey(K key):判断Map集合中是否包含指定的键,包含-true;不包含-false.
(5) boolean containsValue(V value):判断Map集合中是否包含指定的值,包含-true;不包含-false.
(6) int size() : 获取Map中键值对的个数。
3. 实现类:HashMap
注意:如果自定类型的对象存储在HashMap的键上,为保证键的不允许重复,则自定义类型的对象对应的类
需要覆盖hashCode方法和equals方法;但是开始通常用 String/Integer类型的数据作为键。
(1) HashMap: JDK1.2 版本,线程不安全,运行效率较高,允许null 作为 key/value。【开发重点】
(2) Hashtable : JDK1.0版本,线程安全,运行效率慢,不允许null作为key/value (3) Properties:是 Hashtable的子类,要求 键和值都是String类型。开发时,通常用于读取配置文件。
(4) SortedMap : Map子接口,可以对键完成自动排序。实现类:TreeMap
(5) LinkedHashMap:是 HashMap的子类,按照添加的顺序完成键值对的存储。
面试题目:HashMap Hashtable的区别。
4. 遍历:
(1) 第一种遍历方式:键遍历,通过 keySet()方法获取Map 所有的键 【开发应用重点】
Set< K > ks = map.keySet(); // 获取所有的键
// 利用 foreach遍历 set集合
for(K key : ks){
// 通过 map get方法,获取键对应的值
V value = map.get(key);
// 利用 key value 操作每一个键和值即可
}
(2) 第二种遍历方式:值遍历 ,通过 values() 获取 Map中所有的值
Collection< V > vs = map.values();
//利用 foreach 遍历 Collection集合
for(V value:vs){
// 通过 value 操作对应的值
}
(3) 第三种遍历方式:键值对遍历,通过 entrySet方法获取Map中所有键值对
Set< Map.Entry< K,V>> kvs = map.entrySet();
// 通过foreach遍历 set集合 获取每一个键值对(Entry)
for(Map.Entry< K,V> kv : kvs ){
// 利用 Entry中提供两个方法 getKey getValue 获取键和值的信息
K key = kv.getKey(); // 从键值对中获取键的信息
V value = kv.getValue() ; // 从键值对中获取值的信息
// 通过 key value 操作键和值
}
http://www.dtcms.com/a/568493.html

相关文章:

  • 如何通过第三方API接口获取拼多多店铺信息?
  • ⸢ 拾贰 ⸥⤳ 实战攻防演练:红蓝对抗 有效性检验
  • Flutter 与 Native的比较
  • 做网站要用到什么泰安有哪些景点
  • Java EE - Thread类的基本使用
  • 社会真相社会现实丛林社会强者思维社会关系价值交换社会法则社会圈子社会阶层电子书籍PDF
  • 轻量化的网络模型:SqueezeNet 详解与复现(已解决)
  • Adobe Acrobat DC PDF如何批量文本替换
  • 帝国cms 微信小程序获取手机号码的api接口
  • 南昌网站搭建服务免费涨1000粉丝网站
  • linux USB摄像头不停掉线问题
  • 本地开发调试企业微信回调接口不顺畅?利用 CPolar 实现内网穿透,快速建立公网访问通道
  • 金融数仓项目介绍
  • 《投资-154》Beta(贝塔系数)是金融领域中用于衡量资产(如股票、基金、投资组合)系统性风险的核心指标,它反映了资产相对于市场整体波动的敏感程度。
  • 【开发技能】借助Aspose.Words,用C#开发一个Markdown到 Word的转换器
  • React 中 useCallback 的基本使用和原理解析
  • 做网站架构深圳精美网站设计
  • OpenCV(十九):图像的加法运算
  • 基于单相机的双目视觉三维重构项目:使用深度学习方法计算视差图
  • Unity UGC IDE实现深度解析(五):事件系统与消息传递
  • 苏州市建设工程交易中心网站网站开发设计总结及心得体会
  • 黑龙江省鹤岗市城乡建设局网站建站域名
  • soular零基础学习,如何实现TikLab工具链统一登录认证
  • Go语言设计模式:解释器模式详解
  • 深圳的游戏公司后端开发面经
  • 全新私域(微信)管理系统如何获取?
  • 《Godot轻量化开发的全流程进阶指南》
  • 首个开源方案:将 Godot 3D 游戏无缝嵌入 React Native 应用
  • Qt在线安装测试可用的国内代理
  • React Native第五章