• 集合部分


      介绍Java中的Collection FrameWork及如何写自己的数据结构。

        Collection

         ├  List

         │ ┝ LinkedList

         │ ┝ArrayList

         │ ┗Vector

              │   ┗Stack
         ┗Set 

        Map

       ┡Hashtable

       ┡HashMap

       ┗WeakHashMap

       Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Element);Map提供Key到value的映射。

    List、Set、Map是否继承Collection接口。

      List、set 是;Map不是。

    集合类有哪些?简述一下主要方法。

      最常用的集合类是List和Map。List的具体实现包括ArrayList和Vector,它们是可变大小的列表,比较适合构建、储存和操作任何类型对象的元素列表。List适用于按数值素引访问元素的情形。Map提供了一个更通用的元素储存方法。Map集合元素用于储存元素对(称作“键”和“值”),其中每个键映射到一个值。

    说出ArrayList、Vector、LinkedList的储存性能和特性。

      ArrayList和Vector都是使用数组方式储存数据,此数组元素数大于实际储存的数据以便增加和插入数据,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized 方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现储存,按序号索引数据需要进行前项或后项遍历,但是插入数据时只需要记录本项的前项即可,所以插入速度较快。

    Collection和Collections的区别。

      Collection是java.util下的接口,它是各种集合的父类接口,继承于它的接口主要由Set和List;Collections是个java.util下的类,是针对集合的帮助类,提供一系列的静态方法实现对各种集合的搜索、排序、县城安全化的操作。

    HashMap和Hashtable的区别。

      二者都实现了Map接口,是将唯一键映射到特定的值上;主要区别在于:

        HashMap没有排序,允许一个null键和多个null值,而Hashtable不允许;

       HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey,因为contains方法容易让人引起误解;

       Hashtable继承自Dictionary类,HashMap是Java1.2引进的Map接口的实现;

       Hashtable的方法是synchronized的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。

       HashMap和Hashtable采用的Hash、reHash算法大致一样,所以性能不会有很大的差异。

    ArrayList与Vector区别。

        同步性:Vector是线程安全的(同步),而ArrayList是线程不安全的;

       数据增长:当需要增长时,Vector默认增长一倍,而ArrayList却是一半。

    List、Map、Set三个接口,存取元素时各有什么特点。

        List以特定次序来持有元素,可有重复元素;

       Set无法拥有重复元素,内部排序(不可重复);

       Map以Key-Value值保存,Value可多值。

    Set里的元素是不能重复的,那么用什么方法来区分是否重复呢(是用==还是equals())?它们有何区别?

        Set里面的元素是不能重复的,用equals()方法来区分重复与否。覆盖equals()方法用来判断对象的内容是否相同,而“==”判断地址是否相等,用来解决引用值是否指向同一对象。

     

  • 相关阅读:
    什么是聚集索引,什么是非聚集索引,什么又是主键?
    给.net添加MultiPage、TabStrip、Toolbar、treeView,treeview等控件
    一个洗牌程序算法,随机交换位置【经典】
    overload和override都叫重载,都在什么情况下用阿?
    补间形状和补间动画
    电子时钟
    绘图板
    查询XML数据
    纯代码生成按钮
    小球滚动,方块上移
  • 原文地址:https://www.cnblogs.com/DebugTheWorld/p/9784784.html
Copyright © 2020-2023  润新知