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

网站建设90g 吾爱破解百度指数下载

网站建设90g 吾爱破解,百度指数下载,请问我做吉利网站吉利啊,曰本真人做爰视频网站说说你如何选用集合? 需要键值对选用 map 接口下的集合,需要排序用 TreeMap, 不需要排序用 HashMap 不需要键值对仅存放元素则选择 Collection 下实现的接口,保证元素唯一使用 Set, 不需要则选用 List Collection 和 Collections 有什么区别…

说说你如何选用集合?

需要键值对选用 map 接口下的集合,需要排序用 TreeMap, 不需要排序用 HashMap
不需要键值对仅存放元素则选择 Collection 下实现的接口,保证元素唯一使用 Set, 不需要则选用 List

Collection 和 Collections 有什么区别?

  • Collection 是集合类的上级接口,继承它的主要有 List 和 Set;
  • Collections 是针对集合类的一个工具类,它提供了一些列的静态方法实现,如 Collections.sort() 排序、Collections.reverse() 逆序等。

Map 集合

HashMap,Hashtable,LinkedHashMap, TreeMap

HashMap:

  • Hashmap 是一个最常用的 Map, 它根据键的 HashCode 值存储数据, 根据键可以直接获取它
    的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的
  • HashMap 最多只允许一条记录的键为 Null; 允许多条记录的值为 Null;
  • HashMap 不支持线程的同步,即任一时刻可以 有多个线程同时写 HashMap; 可能会导致数据的不一致。如果需要同步,可以用Collections 的 synchronizedMap 方法使 HashMap 具有同步的能力,或者使用ConcurrentHashMap

Hashtable:
Hashtable 与 HashMap 类似, 它继承自 Dictionary 类,不同的是: 它不允许记录的键或者值为
空; 它支持线程的同步,即任一时刻只有一个线程能写 Hashtable, 因为 Hashtable 内部的方法基本
都经过 synchronized 修饰,因此也导致了 Hashtable 在写入时会比较慢。

LinkedHashMap:
LinkedHashMap 是 HashMap 的一个子类,额外持有一个双向链表,维保存了记录的插入顺
序,在用 Iterator 遍历 LinkedHashMap 时,先得到的记录肯定是先插入的. 也可以在构造时用带
参数,按照应用次数排序。在遍历的时候会比 HashMap 慢,不过有种情况例外,当 HashMap 容
量很大,实际数据较少时,遍历起来可能会比 LinkedHashMap 慢,因为 LinkedHashMap 的遍历
速度只和实际数据有关,和容量无关,而 HashMap 的遍历速度和他的容量有关。

TreeMap
TreeMap 实现 SortMap 接口,能够把它保存的记录根据键排序, 默认是按键值的升序排序,也
可以指定排序的比较器,当用 Iterator 遍历 TreeMap 时,得到的记录是排过序的。

HashMap 的链表转换红黑树的机制?

当链表长度大于阈值(默认为 8)会将链表转换成红黑树,以减少搜索时间,但是将链表转换成
红黑树前会判断如果当前数组小于 64 那么会先进行数组扩容而不是转换为红黑树。注:链表(寻
址时间复杂度为 O(N))转换为红黑树(寻址时间复杂度为 O(log(N)))

ConcurrentHashMap 和 Hashtable 的区别??

结构不同:JDK1.7 的 ConcurrentHashMap 底层采用分段的数组(Segment 大数组 +HashEntry
小数组)+ 链表实现,JDK1.8 采用的数据结构,Node 数组 + 链表/红黑二叉树。Hashtable 和
JDK1.8 之前的 HashMap 的底层数据结构类似都是采用数组 + 链表的形式

实现线程安全的方式不同:Hashtable 实现并发安全是通过 synchronized 关键字 ConcurrentHashMap 通过 cas,node,synchronized 相结合的方式实现 (更详细的说是 1.7 使用 segment 分段
锁,segment 实现了 ReentrantLock,在 1.8 取消了分段锁,采用 CAS 和 sychronized 来保证线程安全)

性能不同:Hashtbale 每一次修改都需要锁住整个对象,其他线程在此期间不能操作,所以线
程数量增加的时候性能会急剧下降而 ConcurrentHashMap 仅会对一部分上锁而不是全部都上锁,
因此在并发效率上,ConcurrentHashMap 比 Hashtable 提高了很多

List 集合

Vector 和 ArrayList 初始化大小和容量扩充有什么区别

Vector 和 ArrayList 的默认容量都为 10
Vector 容量扩充默认增加 1 倍
ArrayList 容量扩充默认增加大概 0.5 倍

比较 Arraylist 与 LinkedList ,Vector

底层数据结构:Arraylist 底层使用的是 Object 数组;LinkedList 底层使用的是双向链表
(JDK1.6 之前为循环链表,JDK1.7 取消了循环),Vector 是 List 的古老实现类,底层用 Object[] 存储
线程安全:Vector 底层很多方法都加上了同步关键字 synchronized 保证线程安全,而
ArrayList 和 LinkedList 无法保证线程安全。
是否支持快速随机访问:Vector 和 ArrayList 的内部结构是以数组形式存储的,因此非常适
合随机访问,但非尾部的删除或新增性能较差,比如我们在中间插入一个元素,就需要把后续的
所有元素都进行移动。LinkedList 插入和删除元素效率比较高,但随机访问性能会比以上两个动
态数组慢。。

Set 集合

LinkedHashSet 如何保证有序和唯一性?

LinkedHashSet 底层数据结构由哈希表和链表组成,链表保证了元素的有序即存储和取出一致,哈
希表保证了元素的唯一性。

比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同

  • HashSet 是 Set 接口的实现类,底层是 HashMap, 是线程不安全的,可以存储 Null 值 (因为 HashSet 中只需要用到 key,而 HashMap 是 key-value 键值对,所以向 map 中添加键值对时,键 值对的值固定是PRESENT)
  • LinkHashset 是 HashSet 的子类,LinkedHashSet 是 HashSet 的一个“扩展版本”,会维护“插
    入顺序”,而 HashSet 并不管什么顺序,LinkedHashSet 内部使用 LinkedHashMap 对象来存储和处 理它的元素
  • TreeSet 是基于 TreeMap 实现的 TreeMap 是一个有序的二叉树,那么同理 TreeSet 同样也是 一个有序的
http://www.yidumall.com/news/11914.html

相关文章:

  • 汉寿网站建设百度推广客户端app下载
  • 淘宝客网站免费模板下载2020最新推广方式
  • 电子商务网站开发软件官网seo优化
  • 做公益的网站有哪些视频专用客户端app
  • 手机网站和app有什么区别东莞seo排名收费
  • 山东网站建设哪家好百度站长之家
  • 幼儿园教育类网站模板下载百度资讯
  • 制造业小程序网站开发搜索数据
  • Wordpress二次开发多少钱网站搜索优化技巧
  • 烟台网站制作培训会计培训班要多少钱
  • 那个网站做粮油批发APP短网址生成网站
  • 怎么给幼儿园做网站360排名检测
  • weebly做网站小红书关键词搜索量查询
  • 西安市建设局网站手机百度提交入口
  • 企业网站管理系统设置开鲁网站seo站长工具
  • 城乡建设委员会官方网站seo服务合同
  • 政府网站建设服务方案营销手段和技巧
  • k8s wordpress提高seo关键词排名
  • 网站开发前端框架和后端框架百度小程序seo
  • 特价网站源码竞价托管服务公司
  • 网站怎么做啊广州网站建设费用
  • wordpress头像seo优化博客
  • 泰安集团网站建设报价数据分析报告
  • 如何建设一个简易网站网站建设方案书范文
  • 单一网页开发做网站seo优化
  • 长春有微信网站一起整的吗会计培训班一般收费多少
  • 单页网站seo北京搜索引擎优化
  • 深圳在线问诊平台网站优化策略分析论文
  • 仙居网站开发阿里巴巴国际站关键词推广
  • 如何做网站seo韩小培百度搜索网页