zoukankan      html  css  js  c++  java
  • Java中ArrayList,Vector,LinkedList,HashMap,HashTable,HashSet对比及总结

    1.所有的集合的父类都是Collection的接口

      

    2.Set List Map 区别

       A  在Set里面:无法添加元素的顺序,所以Set里面的元素不能重复

       B  在List中:有索引号,类似于数组,里面的元素可以重复,可以记住添加的顺序

       C  在Map里面:每一项都由一个键值对组成 (key,value)

    3.iterator接口(迭代器,遍历器): 该接口也是Java集合框架的成员,该接口主要用于遍历(迭代访问)Collection中的元素

        主要是用三个方法:  

        A      boolean hasNext():如果被迭代的集合元素还没有被遍历,则返回true.

               B      Object next():返回集合里的下一个元素    element,Cursor.

               C      void remove():删除集合里上一次next方法返回的元素。

    4.Vector和ArrayList的使用区别

            –  Vector类中的所有方法都是线程同步synchronized的,多个线程共享访问同一个Vector对象将是安全的。

       –  ArrayList类中的所有方法都是非同步的,不安全,多线程访问同一个ArrayList对象时,需要自己处理线程同步的问题。

         –  当只有一个线程,或者多线程访问时能确保线程安全,使用ArrayList比使用Vector效率高,因为不用额外的开销检查监视器。

     
     5.ArrayList,Vector和LinkedList区别
             -  LinkedListArrayListVector实现的机制完全不同.
             -  ArrayListVector内部以数组的形式来保存集合中的元素,因此随机访问集合元素上有较好的性能
             -  而LinkedList内部以链表的形式来保存集合中的元素,因此随机访问集合元素时性能较差,但在插入、删除元素时性能非常出色
     
     
     6.Hashtable类:

             -  不仅可以像Vector一样动态存储一系列对象,而且为每个被存储的对象(称为value)都用另一个对象(称为key)关联,可以快速的检索数据

                存储:Hashtable.put(Object key, Object value)

                取出:Hashtable.get(Object key)

             *注意:key和value都为非空对象,如果重复put,则为修改value

    7.Hashtable、HashMap区别

             -  1.Hashtable继承自Dictionary类,HashMap是Map接口的一个实现类(继承自AbstractMap抽象类)

        – 2.在HashMap中,null可以作为键,这样的键只能有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。而在Hashtable中不允许有null健和null值。

             -  3.Hashtable比HashMap慢。Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。

    8.Set接口

              -   Set不允许包含相同的元素(如果有重复会被覆盖),Set判断两个对象是否相同需要采用equals方法进行判断。

              HashSet是其实现类,有其以下特点:

                       1.不能保证元素的排列顺序,顺序有可能会发生变化,它会按Hash顺序进行排列。

                       2.HashSet不是线程同步的,必须通过手动的方式进行同步

                       3.集合元素可以是空值。

                       HashSet当存入一个元素时,会调用该元素的hashCode()方法来得到该元素的hashCode值,之后以该值的顺序进行存储.所以HashSet集合判断两个元素相等的标准是两个对象通过equals方法比较相等,并且两个对象的hashCode()方法返回值也相等。

     

     

     
  • 相关阅读:
    Silverlight 4版本升级到4.0.60531.0
    Silverlight实例教程 理解Navigation导航框架Page类
    微软官方在线培训课程汇总2011版
    分享Silverlight/WPF/Windows Phone一周学习导读(07月11日07月17日)
    Linux内核简介
    Brief Summary of IaaS, PaaS, SaaS
    On Amazon EC2's Underlying Architecture
    Linux进程管理(2)
    一个诡异的时间问题追查[转]
    查看一个进程打开了哪些文件的命令
  • 原文地址:https://www.cnblogs.com/SitongLiu/p/6519346.html
Copyright © 2011-2022 走看看