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

  • 相关阅读:
    DHCP Option 60 的理解
    几种开源分词工具的比較
    推荐交互设计师阅读的一本书
    iOS IAP教程
    艰苦的RAW格式数据恢复之旅
    BestCoder Round #11 (Div. 2) 前三题题解
    罗马数字
    mysql 加入列,改动列,删除列。
    杂项:ASP.NET Web API
    杂项:Web API
  • 原文地址:https://www.cnblogs.com/MuscleBJL/p/3888649.html
Copyright © 2011-2022 走看看