• Java集合类的问题


    最简单的集合类关系如下图

    1.几点重要的特征

    List,Set,Map将持有对象一律视为Object型别。
    Collection、List、Set、Map都是接口,不能实例化,继承自它们的 ArrayList, Vector, HashTable, HashMap是具象class,这些才可被实例化。
    vector容器确切知道它所持有的对象隶属什么型别,vector不进行边界检查。

    2.各个集合类的特性

    List中的元素是可重复,Set中的元素是不可以重复的

    ArrayList与Vector

      都是基于数组的,但是长度是可变的,

      ArrayList与Vector区别不大,

      (1)Vector是同步的,ArrayList是非同步的,所以Vector比ArrayList慢,关于线程同步这点稍后我会有随笔专门梳理,会附上链接的

      (2)ArrayList在内存不够时默认是扩展50% + 1个,Vector是默认扩展1倍(http://www.cnblogs.com/wanlipeng/archive/2010/10/21/1857791.html)

      (3)Vector提供indexOf(obj, start)接口,ArrayList没有。

    LinkedList是基于链表实现的,所以采用add,remove的时候,开销比较小,想遍历LinkedList需要采用iterator来完成

      java源码LinkedList分析:http://blog.csdn.net/jzhf2012/article/details/8540543

     Set

      HashSet是无序的,输出内容顺序与add相反

      TreeSet无论输入的顺序,输出的都是升序类型的

    Map

      HashTable和HashMap

  • 相关阅读:
    Distributed System
    APP专项测试之兼容性测试
    面试如何正确谈薪?
    跳槽季,如何做好技术面试准备?
    Appium基础
    设置安装程序位置
    获取文件版本号
    28-PV&PVC
    Docker-文件拷贝
    Kubemark压测常用命令
  • 原文地址:https://www.cnblogs.com/MuscleBJL/p/3888649.html
Copyright © 2020-2023  润新知