zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    各种颜色对应的16进制
    django之旅 1.hello world
    FlexPaper文档在线浏览
    windwos下django 安装配置
    Josn 序列化
    WCF服务
    easy_install遇上Unable to find vcvarsall.bat
    Android开发环境搭建(jdk+eclip+android sdk)
    安卓系统架构图(转)
    windows8和windows server2012不联网安装.net 3.5(包括2.0和3.0)
  • 原文地址:https://www.cnblogs.com/MuscleBJL/p/3888649.html
Copyright © 2011-2022 走看看