zoukankan      html  css  js  c++  java
  • 基础笔记(一)Java 集合

    集合日常用到的有List,Set,Map等等。

    • List

    List常用的有2种,包括ArrayList与LinkedList。这两种List的主要区别在于底层的数据结构的差别。ArrayList是基于数组实现的,在其上添加了动态改变数组容量的功能。基于这种实现,其更适合做随机访问,不太适合处理元素的增删操作;相比之下,LinkedList是基于链表结构实现的,这种结构决定了其适合处理元素的增删操作,而不适合做随机访问。而且,LinkedList中有“addFirst”与“addLast”这种方法,因此其也可以当做队列、堆栈等数据结构使用。

    List中存放的元素不区分是否相同,而且只能存放对象类型,不能存放基础类型的数据。

    List还有2种比较常用的,Vector,Stack。

    Vector比较类似ArrayList,相比而言,类似于一个同步的ArrayList。

    Stack就是一个堆栈的类型了。

    • Set

    Set比较常用的是HashSet,其不保证数据的顺序,其存放的数据不会重复,内部基于HashMap实现,可以理解为key与value都是一样的HashMap。

    • Map

    Map比较常用的有3种,HashMap,HashTable,ConcurrentMap等。

    HashMap不是线程安全的,适合用于单线程或者多线程中单线程的操作中。存取速度是三者中最快的。

    HashTable是线程安全的,相比HashMap而言,其方法签名上基本上都加上了synchronized关键字,是一种对象锁,每次操作都是锁定整个hash表。

    ConcurrentMap相比HashTable而言,比较大的区别在于锁的粒度。ConcurrentMap内部将hash表分解成多块,多线程操作的时候只会锁一个小块的数据,并发操作性能相比HashTable要高出很多。

  • 相关阅读:
    事件冒泡
    jquery validation验证身份证号、护照、电话号码、email
    移动平台对 meta 标签的定义
    css3属性笔记
    渐变的参数
    各浏览器前缀
    Ubuntu20.04安装Matlab2018b
    win7 php安装使用
    mysql输入命令后没响应
    CentOS7上搭建Dokuwiki
  • 原文地址:https://www.cnblogs.com/asfeixue/p/3662922.html
Copyright © 2011-2022 走看看