Java集合框架中的接口和实现类

       Collection - 基接口
       Set       - "集"接口
       SortedSet - 排序"集"接口
       List - 线性表接口
       Map       - 散列表接口
       SortedMap - 对键(key)进行排序的散列表接口
      
       Set接口的实现类是HashSet
       SortedSet接口的实现类是TreeSet
       List接口的实现类是ArrayList和LinkedList
       Map接口的实现类是Hashtable和HashMap
       SortedMap接口的实现类是TreeMap
   ----------------------------------------------------
区分Set、List和Map      
      1  Set集合不能存储重复的元素,并且元素不是按次序存放的。
     2  List集合称为线性表,其元素是按照次序存放的,每一个元素都有一个指定的位置,List集合中的元素是可以重复的
     3 Map集合称为散列表,元素是按照键值对的方式存储的,Map集合中的元素是没有次序零散存放的,可以通过键方便的获取值
区分ArrayList类和LinkedList类      
      1 ArrayList类使用可变数组存储元素,而LinkedList类使用双向的循环列表来存储元素。
     2 在数据量较大时,ArrayList类在查询时较快,而插入和删除数据较慢;而LinkedList类在查询元素时较慢,插入和删除元素时较快
区分Hashtanble和HashMap类  
      1 出身不同,Hashtable类是从JDK1.1开始就提供的集合类,具有一些旧的、不常使用的操作集合的方法。 从JDK1.2开始,Hashtable并入了Java集合框架,也实现了Map接口。而HashMap类是在JDK1.2才出现在Java集合框架中的。
     2 行为不同
       HashMap可以使用null作为键,也可以使用null作为值,而Hashtable不能使用null作为键和值。
       Example:Map m1=new HashMap();
         m1.put(null,null);  //通过      
         Map m2=new Hashtable();
         m2.put(null,null);  //不通过      
     3 Hashtable类能够安全使用在多线程环境下,Hashtable类中的方法是同步的方法,相比HashMap类,Hashtable类效率稍低,而HashMap不适合于使用在多线程环境下。

你可能感兴趣的:(java专栏)