Java集合框架的概念以及常用接口的介绍

导读:为了解决数组长度固定不变无法适应变化情况,无法获取对象真实的储存个数,查找效率低下等问题,Java集合框架为我们开发了一套性能优良,使用方便的接口和类,用来保存数据和进行各种数据操作,位于java.util包中。集合框架包含三大块内容:对外的接口,接口的实现,和对集合运算的算法。

Java集合框架简图

特征:

*List,Set,Map将持有对象一律视为Object型别。

*Collection、List、Set、Map都是接口,不能实例化,例如:List li=null ,会报空指针异常。

继承自它们的 ArrayList, Vector, HashTable, HashMap是具象class,这些才可被实例化。


List接口

  List接口通常表示一个列表(数组、队列、链表、栈等),其中的元素有序、可以重复,常用实现类为ArrayList和LinkedList,另外还有不常用的Vector。另外,LinkedList还实现了Queue接口,因此也可以作为队列使用。List和数组类似,List可以动态增长,相当于动态数组,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。

Set接口

  Set接口通常表示一个集合,其中的元素有序的集合,不允许重复。Set以哈希表的形式存放元素,检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。

Map接口

Map是一个映射接口,其中的每个元素都是一个key-value键值对。Map主要用于存储健值对,不要求有序,它是根据键得到值,因此不允许键重复,但允许值重复

Iterator迭代器

  Iterator是遍历集合的迭代器(不能遍历Map,只用来遍历Collection),Collection的实现类都实现了iterator()函数,它返回一个Iterator对象,用来遍历集合,ListIterator则专门用来遍历List。

工具类

  Arrays和Collections是用来操作数组、集合的两个工具类,例如在ArrayList和Vector中大量调用了Arrays.Copyof()方法,而Collections中有很多静态方法可以返回各集合类的synchronized版本,即线程安全的版本,当然了,如果要用线程安全的结合类,首选Concurrent并发包下的对应的集合类。

泛型集合

  例: Map<String, String> dog=new HashMap<String, String>();      

          List<Dog> dogs=new ArrayList<Dog>();

           泛型集合用<>标记元素类型,在创建集合对象时强制指定了集合中元素的类型,在从集合中取出元素时无需进行类型强制转换,避免了ClassCastException异常,即类型转换异常。







发布了47 篇原创文章 · 获赞 7 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章