zoukankan      html  css  js  c++  java
  • JDK源码阅读——集合类(1)

      今天算是正式开始读源码了。看了许多面经,发现不读源码还是不行。今天稍微看了看一些接口和抽象类等,大致有了点理解。总结点它们之间的区别吧

    Collection和Collections

      Collection是个接口,规范了一些相关的类必备的方法。其中,List、Set、Queue、Deque都继承自Collection。而Collections则是Arrays的包装,更多的还是丰富了对数组的操作。这里提一句Arrays,虽然Arrays是public的,但它的构造函数其实是private,所以也是无法实例化的,其作用还是在于它提供的诸多静态方法。从前版本中,Arrays.sort是通过归并排序实现的,而目前是通过一种快排算法实现的。当数据量超过一定量时,将采用并行算法进行排序。

     

    List和Vector

      List是接口,而Vector是可实例化的类。Vector的作用和C++中的vector类似,都是可扩展的数组。List实现的形式有两种,一是ArrayList类,二是LinkedList类。由名字可知,前者底层是数组,后者是链表。这两类均实现了可扩展数组的区别在于:Vector速度较慢,但其线程安全,不允许多个线程同时访问。List则是速度较快,但并不是线程安全的,因此允许多个线程同时访问。

    Dictionary和Map

      这二者发挥的作用是一致的,都是提供了键值对的字典功能。但Dictionary是抽象类,而Map是接口。目前Dictionary已经被淘汰了,取而代之的是实现、扩展更为方便的Map。

      明天具体阅读一下,Hashmap、Hashset、LinkedList、ArrayList等。

  • 相关阅读:
    安装python包
    在RHEL5.4上升级Python
    IronPython开发Windows Form程序总结
    Windows下手动配置Oracle Client的要点
    dreampie一个很不错的python命令行交互工具
    Eclipse插件汇总
    pyDbRowFactory Python版Db Row Factory
    如何让Jython自动加载一个Jar包
    跨计算机执行的几个方法
    Python 版 Instance Activator
  • 原文地址:https://www.cnblogs.com/dloooooo/p/13762549.html
Copyright © 2011-2022 走看看