网站设计内容板块住房和城乡建设部监理网站

张小明 2026/1/2 4:54:47
网站设计内容板块,住房和城乡建设部监理网站,滨州网站建设公司,西安模板网站服务商一、Map概述 在Collection篇中#xff0c;我们总结了List和Set的一些实现类#xff0c;以及对应的底层实现。Map和它们有些不一样的地方#xff0c;它是存储键值对的容器#xff0c;键就像List的下标#xff0c;可以通过键找到对应的值。Map中key不能重复。 1.1 Map规定…一、Map概述在Collection篇中我们总结了List和Set的一些实现类以及对应的底层实现。Map和它们有些不一样的地方它是存储键值对的容器键就像List的下标可以通过键找到对应的值。Map中key不能重复。1.1 Map规定的一些方法作为键值对容器Map规定了一些键值对的一些方法//获取键值对的个数 int size() //添加键值对/修改key对应的值。如果是添加返回nu,如果是修改返回原来的value值 V put(K key, V value) //将指定Map中的键值对添加到当前Map中如果有重名的key会修改value的值 void putAll(Map? extends K,?extends Vm) //根据key删除键值对返回值是被删除的键值对的value V remove(Object key) //根据key获取对应的value V get(Object key) //获取Map中所有的key SetK keySet() //获取Map中所有的value CollectionV values() //获取全部的键值对 SetMap.EntryK,VentrySet() //Map中是否包含指定的key boolean containsKey(Objectkey) //Map中是否包含指定的value boolean containsValue(Objectvalue) //清空全部键值对 void clear()二、Map的实现类Map接口的实现类主要包含HashMap、LinkedHashMap、TreeMap。HashMap是最普通的Map实现类键值对的顺序是无序的。------学习的时候类比HashSetLinkedHashMap键值对的顺序和存入时的顺序一致。-------学习的时候类比LinkedHashSetTreeMapkey的内容有序的键值对集合。-------学习的时候类比TreeSet2.1 HashMap实现类HashMap和HashSet一样底层都是哈希表结构不一样的是Map是键值对结构具体的哈希表的描述我在Collection篇的HashSet中有过描述在这里就不再赘述需要的可以点击跳转。2.1.1 构造方法构造方法是可以用来在创建对象时直接来为属性赋值的。//构造一个空的HashMap默认初始容量16加载因子0.75 HashMap() //构造一个空的HashMap具有指定的初始容量加载因子0.75 HashMap(int initialCapacity) //构造一个空的HashMap具有指定的初始容量和加载因子 HashMap(int initialCapacity, floatloadFactor) //构造一个HashMap包含指定Map中的键值对 HashMap(Map?extends K,? extendsV m)2.1.2 常用方法1增有一点不太一样的是put方法可以用来添加也可以用来修改如果原来没有数据就是添加反之就是修改。//添加键值对 或 修改key对应的值。如果是添加返回null,如果是修改返回原来的value值 V put(K key, V value) //将指定Map中的键值对添加到当前Map中如果有重名的key会修改value的值 void putAll(Map? extends K, ? extends V m)2删//删除指定key对应的键值对 V remove(Object key) //仅当key和value都对的时候删除键值对 boolean remove(Object key, Object value) //清空元素 void clear()3改//添加键值对 或 修改key对应的值。如果是添加返回null,如果是修改返回原来的value值 V put(K key, V value) //修改键值对只有当key存在的时候才修改否则不修改 V replace(K key, V valie)4查//获取key对应的value V get(Object key) //获取key对应的值如果没有key获取默认值 V getOrDefault(Object key, V defaultValue) //获取所有的key SetK keySet() //获取所有的value CollectionV values() //获取所有的键值 SetMap.EntryK,V entrySet() //是否包含指定的key boolean containsKey(Object key) //是否包含指定的value boolean containsValue(Object value) // 获取键值对的个数 int size()2.1.3 遍历方法1先获取Map中所有的key再根据key获取value//遍历方法一先获取所有的key根据key获取value SetString keySet map1.keySet(); for(String key : keySet) { String value map1.get(key); System.out.println(key: key ,value: value); }2)先调用entryset()方法返回所有的键值对获取之后使用Set接收再获取key和value。//遍历方法二先获取所有键值对从键值对里取key和value SetMap.EntryString, String entrySet map1.entrySet(); for(Map.EntryString, String entry : entrySet) { String key entry.getKey(); String value entry.getValue(); System.out.println(key: key value: value); }3先获取所有key再使用迭代器获取key之后用迭代器的遍历方式通过key获取value//遍历方法三获取Key的迭代器通过迭代器获取key通过key获取value SetString keySet map1.keySet(); IteratorString it keySet.iterator(); while(it.hasNext()) { String key it.next(); String value map1.get(key); System.out.println(key: key , value: value); }4先获取所有的键值对对象再通过迭代器获取键值对对象用迭代器的遍历方式获取key和value//遍历方法四获取键值对迭代器通过迭代器获取键值对通过键值对对象获取key和value SetMap.EntryString, String entrySet map1.entrySet(); IteratorMap.EntryString, String it entrySet.iterator(); while(it.hasNext()) { Map.EntryString, String entry it.next(); String key entry.getKey(); String value entry.getValue(); System.out.println(key: key , value: value); }2.2 LinkedHashMap实现类LinkedHashMap是HashMap的子类它具有和HashSet同样的功能元素也是不能重复唯一不同的是LinkedHashMap会维持元素加入的顺序。LinkedHashMap和LinkedHashMap一样底层数据结构是双向链表哈希表。2.2.1 构造方法//创建一个空的LinkedHashMap初始容量16加载因子0.75Map元素顺序使用插入顺序 LinkedHashMap() //创建一个空的LinkedHashMap初始容量为指定值加载因子0.75Map元素顺序使用插入顺序 LinkedHashMap(intcapacity) //创建一个空的LinkedHashMap初始容量和加载因子为指定值Map元素顺序使用插入顺序 LinkedHashMap(int capacity, float loadFactor) /*创建一个空的LinkedHashMap初始容量和加载因子为指定值accessOrder为true时Map元素顺序使用插入 顺序 */ LinkedHashMap(int capacity, float loadFactor,boolean accessOrder) //创建一个包含指定键值对的LinkedHashMapMap元素顺序使用插入顺序 LinkedHashMap(Map? extends K, ? extends V m)2.2.2 常用方法因为LinkedHashMap是HashMap的子类所以常用方法的总结和HashMap相同详见2.1.2在此就不过多赘述。2.2.3 遍历方法Map的遍List比起来也就多了同时获取键值对的遍历方式也同时又因为Map也是无序的所以没有普通for循环的遍历所以遍历方法的总结和HashMap相同详见2.1.3在此就不过多赘述。2.3 TreeMap实现类TreeSet使用的是树加键值对存储元素。2.3.1 构造方法//创建一个空的TreeMap使用自然顺序对key排序 TreeMap() //创建一个空的TreeMap使用指定的比较器对key进行排序 TreeMap(Comparator? super K c) //创建一个包含指定键值对的TreeMap使用自然顺序对key排序 TreeMap(Map? extends K, ? extends V m) //创建一个包含指定键值对的TreeMap使用与相同的排序规则 TreeMap(SortedMapK, ? extends V m)2.3.2 常用方法常用方法的总结和HashMap相同详见2.1.2在此就不过多赘述。2.3.3 遍历方法Map的遍List比起来也就多了同时获取键值对的遍历方式也同时又因为Map也是无序的所以没有普通for循环的遍历所以遍历方法的总结和HashMap相同详见2.1.3在此就不过多赘述。2.4 Hashtable实现类Hashtable是Map的实现类它也是键值对容器用法和HashMap一样主要的区别是1Hashtable在多线程访问时是安全的。HashMap是不安全的2Hashtable继承于DictionaryHashMap继承于AbstractMap3Hashtable键和值都不能为nullHashMap的键和值都可以为null但只能有一个key为null
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站的分类有哪些内容室内设计有哪些网站

树莓派无头部署实战:从零开始远程掌控你的设备 你有没有遇到过这样的场景?手握一块树莓派,却没带显示器、键盘和鼠标,项目又急着上线。插上网线?不行,目标网络只有Wi-Fi。这时候,你能做的难道只…

张小明 2026/1/2 2:33:12 网站建设

中外商贸网站建设哪个企业提供电子商务网站建设外包

卷心菜田里,老陈的菜球个个紧实饱满,排列整齐。“这套水肥系统让我省心不少,”他指着地里的管道说,“不仅菜长得好,管理还特别轻松。”认识卷心菜矮砧密植卷心菜矮砧密植,简单来说就是选用矮生品种&#xf…

张小明 2026/1/2 2:33:16 网站建设

c 网站开发构想扬中企业网站优化哪家好

魔兽争霸3完整优化解决方案:告别卡顿与显示问题的终极指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代电脑上的…

张小明 2026/1/2 2:33:18 网站建设

重庆怎么推广企业网站深圳拼团手机网站开发

【C2000系列DSP的Bootloader详解】如何打包源文件为库文件且加密仅授权使用: 如果想要在TI的CCS开发环境中为C2000系列MCU生成lib库文件,并对这些库文件进行加密保护,确保只有授权方(持有密钥)才能调用和使用,以此保护源代码的知识产权。 C2000安全特性在服务器电源上的…

张小明 2026/1/2 2:33:16 网站建设

网站改版好吗北京哪家做网站好

SAS窗口环境操作指南 1. 窗口与工具栏的打开和关闭 1.1 命令窗口 打开步骤 : 在“首选项”对话框的“工具箱”选项卡中,取消选择“合并窗口”。 完成以下任意步骤: 在“首选项”对话框的“工具箱”选项卡中选择“显示命令窗口”。 发出“COMMAND WINDOW”命令。 关闭…

张小明 2026/1/1 9:07:24 网站建设

中国建设招聘信息网站怎么把wordpress

课题介绍基于 JavaSpringBoot 的车辆租赁管理系统,直击车辆租赁行业 “车辆状态不透明、订单流程线下化、费用计算易出错” 的核心痛点,依托 SpringBoot 高可用、易扩展的架构优势,构建 “车辆智能管控 订单全流程线上化 财务自动核算” 的…

张小明 2026/1/2 2:33:18 网站建设