• 基础笔记(一)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要高出很多。

  • 相关阅读:
    Java-io流入门到精通详细总结
    Java网络编程总结
    递归--逆波兰表达式
    递归--N皇后问题
    递归--汉诺塔问题 (Hanoi)
    递归--求n!的阶乘结果
    枚举--熄灯问题
    枚举--假币问题
    枚举--生理周期
    枚举--完美立方Python算法实现
  • 原文地址:https://www.cnblogs.com/asfeixue/p/3662922.html
Copyright © 2020-2023  润新知