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

郑州做茶叶的网站淘宝seo排名优化软件

郑州做茶叶的网站,淘宝seo排名优化软件,石河子做网站公司,我想用c 来做网站Map & Set 一、概念二、Map三、Set下期预告 一、概念 Map和Set是一种专门用来进行搜索的数据结构,其搜索的效率与其具体的实例化子类有关。它们分别定义了两种不同的数据结构和特点: Map(映射) :Map是一种键值对&…

Map & Set

  • 一、概念
  • 二、Map
  • 三、Set
  • 下期预告

一、概念

MapSet是一种专门用来进行搜索的数据结构,其搜索的效率与其具体的实例化子类有关。它们分别定义了两种不同的数据结构和特点:

  1. Map(映射) :Map是一种键值对(key-value)的集合,每个键值对都是一个元素。
  2. Set(集合):Set是一种不允许重复元素(key)的集合。


通过查看Java集合框架图,可以看到,Set 接口有两个实现类:TreeSet 类和 HashSet 类Map 接口有两个实现类:TreeMap 和 HashMap

二、Map

Map是一个接口类,没有继承自Collection,该接口类中存储的是<K,V>结构的键值对,并且K一定是唯一的,不能重复。

Map常用方法

方法描述
V get(Object key)返回键对应的值
V getOrDefault(Object key, V defaultValue)返回键对应的值,如果键不存在则返回默认值
V put(K key, V value)设置键对应的值
V remove(Object key)删除键及其对应的映射关系
int size()返回Map中键值对的数量
Set keySet()返回所有键的不重复集合
Collection values()返回所有值的可重复集合
Set<Map.Entry<K, V>> entrySet()返回所有键-值映射关系的集合
boolean containsKey(Object key)判断是否包含指定键
boolean containsValue(Object value)判断是否包含指定值

在上面的Map方法中,ebtrySet()方法返回值中出现了一个特殊的类型 Map.Entry<K, V>,它是Map内部实现的用来存放<key, value>键值对映射关系的内部接口,该内部接口中主要提供了key、 value 的获取,以及value的设置等方法:

方法描述
K getKey()返回 entry 中的键
V getValue()返回 entry 中的值
V setValue(V value)将键值对中的值替换为指定的值

注意:

  1. Map是一个接口,不能直接实例化对象,如果要实例化对象只能实例化其实现类TreeMap或者HashMap,还有一个LinkedHashMap,LinkedHashMap是在HashMap的基础上维护了一个双向链表来记录元素的插入次序。
  2. Map中存放键值对的Key是唯一的,value是可以重复的
  3. 在TreeMap中插入键值对时,key不能为空,否则就会抛NullPointerException异常,value可以为空。但
    是HashMap的key和value都可以为空。
  4. Map中的Key可以全部分离出来,存储到Set中来进行访问(因为Key不能重复)。
  5. Map中的value可以全部分离出来,存储在Collection的任何一个子集合中(value可能有重复)。
  6. Map中键值对的Key不能直接修改,value可以修改,如果要修改key,只能先将该key删除掉,然后再来进行
    重新插入。

TreeMap和HashMap的区别

属性TreeMapHashMap
底层数据结构红黑树哈希桶
插入/删除/查找时间复杂度O(log N)O(1)
是否有序关于Key有序无序
线程安全性不安全不安全
插入/删除/查找区别需要进行元素比较通过哈希函数计算哈希地址
比较与覆写key必须能够比较,否则会抛出 ClassCastException 异常自定义类型需要覆写 equalshashCode 方法
应用场景需要Key有序场景下Key是否有序不关心,需要更高的时间性能

三、Set

在Java集合类中,Set与Map主要的不同有两点:Set是继承自Collection的接口类,Set中只存储了Key。

Set常用方法

方法描述
boolean add(E e)添加元素,但重复元素不会被添加成功
void clear()清空集合
boolean contains(Object o)判断 o 是否在集合中
Iterator iterator()返回迭代器
boolean remove(Object o)删除集合中的 o
int size()返回 set 中元素的个数
boolean isEmpty()检测 set 是否为空,空返回 true,否则返回 false
Object[] toArray()将 set 中的元素转换为数组返回
boolean containsAll(Collection<?> c)集合 c 中的元素是否在 set 中全部存在,是返回 true,否则返回 false
boolean addAll(Collection<? extends E> c)将集合 c 中的元素添加到 set 中,可以达到去重的效果

注意:

  1. Set是继承自Collection的一个接口类
  2. Set中只存储了key,并且要求key一定要唯一
  3. TreeSet的底层是使用Map来实现的,其使用key与Object的一个默认对象作为键值对插入到Map中的
  4. Set最大的功能就是对集合中的元素进行去重
  5. 实现Set接口的常用类有TreeSet和HashSet,还有一个LinkedHashSet,LinkedHashSet是在HashSet的基础
    上维护了一个双向链表来记录元素的插入次序。
  6. Set中的Key不能修改,如果要修改,先将原来的删除掉,然后再重新插入
  7. TreeSet中不能插入null的key,HashSet可以。

TreeSet和HashSet的区别

Set底层结构TreeSetHashSet
底层结构红黑树哈希桶
插入/删除/查找时间复杂度O(log N)O(1)
是否有序关于Key有序不一定有序
线程安全性不安全不安全
插入/删除/查找区别按照红黑树的特性来进行插入和删除先计算key哈希地址,然后进行插入和删除
比较与覆写key必须能够比较,否则会抛出ClassCastException异常;自定义类型需要覆写equals和hashCode方法
应用场景需要Key有序场景下Key是否有序不关心,需要更高的时间性能

下期预告

上述提到了HashMap 和 HashSet,它们底层都使用到了哈希表结构,关于 哈希表,我们下一章节介绍!

http://www.hkea.cn/news/575401/

相关文章:

  • 网站怎么编辑搜狗网站提交入口
  • 自建网站做外贸的流程广告推广方式
  • 警告欺骗网站模板免费注册
  • 获取网站访客信息seo分析师招聘
  • 制作网页的网站有哪些网站建设
  • 日本真人做爰无遮挡视频免费网站嘉兴关键词优化报价
  • 忻州市中小企业局网站贵州整站优化seo平台
  • 网页怎么制作超链接seo兼职接单平台
  • 网站建设中应注意哪些问题重庆整站seo
  • 贵阳网站建设哪家便宜微商软文范例大全100
  • 怎么在微信上做网站竞价交易
  • wordpress优化版4.7.4网站seo设计
  • 网上课程网站精准客户数据采集软件
  • 专业网站建设报价外呼系统电销
  • 网站建设公司价格差别seo还有哪些方面的优化
  • 哪家公司建造了迪士尼乐园关键词优化推广排名多少钱
  • 做教育的网站有哪些内容吗湖南网站营销推广
  • wordpress 跳过ftp搜索引擎排名优化方案
  • 360做的网站北京营销推广公司
  • 我国政府网站建设的趋势宁波seo公司排名榜
  • 高端网站建设,恩愉科技专业的seo搜索引擎优化培训
  • 跨境网站开发公司网站seo思路
  • 冠县网站建设活动推广方案
  • 鲜花培训网站建设网站推广要点
  • 情趣内衣怎么做网站如何制作网页
  • 网站交互技术百度推广登陆后台
  • 网站的推广和宣传方式各行业关键词
  • 腾讯云服务器网站建设淘宝推广哪种方式最好
  • 大专网站建设论文找个免费的网站
  • 移动端网站开发流程图seopeix