一 List三个子类的区别和应用场景

Vector:底层是数组,查询快,增删慢

Arraylist:底层是数组,查询块,增删慢

LinkedList:底层是链表,查询慢,增删快

效率:

Vector:线程同步(安全),效率低

ArrayList:线程不同步(不安全),效率高

它用来代替Vector的。

LinkedList:线程不安全,效率高

二 Set集合的三个子类:

  • HashSet集合
  • 底层其实是包装了一个HashMap实现的
  • 底层数据结构是数组+链表 + 红黑树
  • 具有比较好的读取和查找性能, 可以有null 值
  • 通过equals和HashCode来判断两个元素是否相等
  • 非线程安全
  • LinkedHashSet集合
  • 继承HashSet,本质是LinkedHashMap实现
  • 底层数据结构由哈希表(是一个元素为链表的数组)和双向链表组成。
  • 有序的,根据HashCode的值来决定元素的存储位置,同时使用一个链表来维护元素的插入顺序
  • 非线程安全,可以有null 值
  • TreeSet集合
  • 是一种排序的Set集合,实现了SortedSet接口,底层是用TreeMap实现的,本质上是一个红黑树原理
  • 排序分两种:自然排序(存储元素实现Comparable接口)和定制排序(创建TreeSet时,传递一个自己实现的Comparator对象)
  • 正常情况下不能有null值,可以重写Comparable接口 局可以有null值了。
  •  EnumSet
  • 集合元素必须是枚举类型,否则会抛出异常
  • EnumSet集合也是有序的,其顺序就是Enum类内元素定义的顺序
  • · EnumSet存取的速度非常快,批量操作的速度也很快

随机推荐

  1. python 链接impala执行SQL

    项目中用python来链接impala数据库最常见,一个简单的链接,获取结果. #!/usr/bin/python # -*- coding:utf-8 -*- from impala.dbapi i ...

  2. storedownloadd占用cpu高

    禁用App Store的自动更新 

  3. 《基于Scyther的秘钥建立协议设计》-------摘抄整理

    本篇论文额主要创新点:   利用Scyther软件,通过对一个不安全的秘钥建立协议逐步添加并验证安全属性,最终建立一个安全的秘钥建立协议. 通过形式化分析软件设计秘钥建立协议课可以提高协议设计效率,减 ...

  4. golang使用ssh远程连接服务器并执行命令

    安装golang.org/x 直接去github上面,把https://github.com/zieckey/golang.org,把整个目录拷贝下来放到你的gopath下面即可.记住在gopath的 ...

  5. 日志分析方法概述 & Web日志挖掘分析的方法

    日志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志:操作系统内核.各种应用服务器等等.日志的内容.规模和用途也各不相同,很难一概而论. 本文讨论的日志处理方法中的日志,仅指Web日志.其 ...

  6. vue3.0+typeScript项目

    https://segmentfault.com/a/1190000018720570#articleHeader15 https://segmentfault.com/a/1190000016423 ...

  7. nginx配置跨域之后前后端调用,二次请求

    公司项目从前后端不分离转到前后端分离 首先遇到的问题就是前后端分离的时候跨域的问题 但是当跨域成功配置并且能访问成功的时候发现 每次客户端的请求都会发送两次 第一次是OPTIONS的请求,然后才是正常 ...

  8. 揭秘PHP深受Web开发者喜爱的原因

    我们再次回顾一下在软件开发的发展中非常有名的技术"PHP"(Hypertext Pre-Processor),它是由Rasmus Lerdorf在1995年发明的.开始阶段,PHP ...

  9. HTML5游戏2D开发引擎

    1.PixiJS(基于webGl和canvas) 官网:http://www.pixijs.com/ github(star:20672):https://github.com/pixijs/pixi ...

  10. 第六章 Flask-WTF(二)

    Flask-WTF Flask-WTF是简化了WTForms操作的一个第三方库. WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板. 当然还包括一些其他的功能:CSRF保护,文件 ...