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

Map集合

Map集合介绍:

是双列集合,每个元素是一对值,每一对值也叫键值对对象。
特点:针对键而言。
HashMap:无序、不重复、无索引。底层基于哈希表
注意:HashMap集合的键和值可以是null。
LinkedHashMap:有序、不重复、无索引。底层基于哈希表和链表
TreeMap:无序、不重复、无索引、键可排序(键如果是自定义类类型,则需要定义排序规则)。底层基于红黑树结构


创建对象:


Map<String,Integer> map = new HashMap<>();


常用方法:


public V put(K key, V value) 添加/修改元素,返回被修改的元素值(旧值)。如果是添加,则返回null。
public V get(Object obj) 根据键获取对应值
public V remove(Object key) 根据键删除整个元素,返回被删除的value值。
public boolean containsKey(Object value) 判断是否包含某个键
public Set<K> keySet() 获取全部键的集合

public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); //public V put(K key, V value) 添加/修改元素 map.put("张三", 18); map.put("李四", 19); map.put("王五", 20); //public int size() 获取集合的大小 int s = map.size(); System.out.println("map.size() = " + s); //public void clear() 清空集合 map.clear(); System.out.println("map = " + map); //public boolean isEmpty() 判断集合是否为空,为空返回true boolean empty = map.isEmpty(); System.out.println("map.isEmpty() = " + empty); //public V get(Object obj) 根据键获取对应值 Integer i = map.get("张三"); System.out.println("map.get(\"张三\") = " + i); //public V remove(Object key) 根据键删除整个元素 Integer remove = map.remove("张三"); System.out.println("map = " + map); //public boolean containsKey(Object key) 判断是否包含某个键 boolean containsKey = map.containsKey("张三"); System.out.println("map.containsKey(\"张三\") = " + containsKey); //public boolean containsValue(Object key) 判断是否包含某个值 boolean b = map.containsValue(18); System.out.println("map.containsValue(18) = " + b); //public Set<K> keySet() 获取全部键的集合 Set<String> strings = map.keySet(); System.out.println("map.keySet() = " + strings); //public Collection<V> values() 获取全部值的集合 Collection<Integer> values = map.values(); System.out.println("map.values() = " + values); }


遍历集合:

public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("张三", 18); map.put("李四", 19); map.put("王五", 20); /* Map集合的遍历方式一:键找值 public Set<K> keySet() 获取所有键的集合 public V get(Object key) 根据键获取其对应的值 */ Set<String> strings = map.keySet(); for (String s : strings) { Integer i = map.get(s); System.out.println(s + " = " + i); } /* Map集合的遍历方式二:键值对 Map集合提供的方法 Set<Map.Entry<K, V>> entrySet() 获取所有“键值对”的集合 Map.Entry对象提供的方法 K getKey() 获取键 V getValue() 获取值 */ Set<Map.Entry<String, Integer>> entries = map.entrySet(); for (Map.Entry<String, Integer> entry : entries) { System.out.println(entry.getKey() + " = " + entry.getValue()); } /* Map集合的遍历方式三:forEach()+lambda表达式 default void forEach(BiConsumer<? super K, ? super V> action) 结合lambda遍历Map集合 */ map.forEach((s, integer) -> System.out.println(s + " = " + integer)); map.forEach(new BiConsumer<String, Integer>() { @Override public void accept(String s, Integer integer) { System.out.println(s + " = " + integer); } }); }


http://www.cnnetsun.cn/news/1948875.html

相关文章:

  • 代码生成器的“透明化手术”:如何用5步可视化建模让AI写出你敢上线的微服务(企业级SLO保障清单首次公开)
  • 避坑指南:STM32CubeMX配置GPIO驱动LED/蜂鸣器时,LL库与HAL库的关键区别与选择
  • 完全指南:高效使用开源工具突破Cursor AI Pro限制
  • 独立站SEO流量增长:提高Google排名的优化方法
  • VBA转VSTO:一键打造独立Excel插件
  • 3步终极解锁VMware macOS虚拟机:开源工具Unlocker完整指南
  • 【项目博客】系统基础框架和依赖模块的搭建
  • SWIFT框架回归任务避坑指南:从`num_labels=1`到损失函数,详解LoRA微调大模型做预测的每个细节
  • C++、C#、C语言与易语言:四大编程语言终极对比
  • QT5图形视图框架实战:手把手教你实现图片标注工具(附完整源码)
  • 保姆级教程:用ESP32-P4和ST7703屏打造24fps视频轮播器(附完整代码和FFmpeg转换命令)
  • 【实践】Android Telephony 双卡适配:从SubscriptionManager到TelephonyManager的正确获取与使用
  • 从数据到文本:解锁Matlab char函数的四大核心应用场景
  • 【限时解密】头部AI IDE厂商不愿公开的上下文理解黑盒:基于237万行生产代码训练的Context Embedding微调范式
  • 实战避坑指南:在ant-design-vue的a-table中集成vue-draggable-resizable实现列宽拖拽
  • 【综合题-知识点】系统工程与信息技术基础
  • Beego ORM避坑指南:从数据库设计到高效查询
  • KICAD6.0拼版神器KIKIT插件安装全攻略:从命令行配置到路径设置
  • 3ds Max 中 Gamma 与 LUT 首选项:从模型导出失败到色彩管理核心解析
  • Winhance终极指南:如何轻松优化Windows系统的完整教程
  • 3个核心功能揭秘:如何用AI智能移除图像中的任何对象
  • 告别性能瓶颈:在PyQt5中用QAbstractItemModel自定义Model优化大型QTreeView数据加载
  • 南京邮电大学电装实习2023:从零到一构建智能终端与网络互联实战
  • S/4 HANA里给MARC表加字段报错?别慌,手把手教你用EXTEND VIEW搞定
  • Qt5.14.2 MinGW静态编译实战:从环境搭建到独立可执行文件生成
  • 你的数据适合灰色预测吗?用MATLAB的级比与光滑比检验来把第一道关
  • 告别‘滋滋声’!Android录音降噪实战:手把手教你集成WebRTC NS模块(附完整代码)
  • 终极Visual C++运行库AIO管理指南:从基础部署到高级定制
  • OpenCV性能跃迁:从SIMD指令集到MIPP跨平台优化的实战指南
  • 收藏备用|35岁程序员不被淘汰!AI转型实操指南(小白/资深都能学)