• Java学习之集合


    1.ArrayList:采用数组的形式保存对象,这种方式将对象保存在连续的位置中,所以查询效率比较高,但是插入删除时麻烦,并且ArrayList不是线程安全的。

    2.Vector:保存对象的方式与ArrayList相同,但是Vertor方法中都有synchronized关键字,所以是线程安全的。

    3.LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引 但是缺点就是查询麻烦。

    关于ArrayList实现线程安全方法:

    1.使用Vector,它是ArrayList的线程安全版本,其实现90%和ArrayList都完全一样。

    2.使用Collections.synchronizedList方法把你的ArrayList变成一个线程安全的List。

    3.两种区别

      1.SynchronizedList有很好的扩展和兼容功能。他可以将所有的List的子类转成线程安全的类。 

      2.使用SynchronizedList的时候,进行遍历时要手动进行同步处理。

      3.SynchronizedList可以指定锁定的对象。

      4.LinkedList也是使用SynchronizedList转换成线程安全的类,Vector不能替代LinkedList。

  • 相关阅读:
    [ SDOI 2006 ] 保安站岗
    [ TJOI 2012 ] 防御
    [ ZJOI 2012 ] 灾难
    [ HNOI 2008 ] 玩具装箱
    「UER#2」信息的交换
    「UR#5」怎样跑得更快
    「UR#6」懒癌
    清华集训2014 做题记录
    「UR#5」怎样更有力气
    弦图及区间图学习笔记
  • 原文地址:https://www.cnblogs.com/michaelShao/p/6372720.html
Copyright © 2020-2023  润新知