自己学习JAVA的一点小总结,与大家分享一下
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不适合于使用在多线程环境下。
|