Java集合类

Java集合框架

概述

Java集合工具包位于Java.util包下,包含许多常用数据结构,如数组、链表、栈、队列、集合、哈希表等。Java集合框架大致分五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。

整体框架:


由图看出,集合类主要由Collection接口和Map接口组成。

Collection是List,Set集合抽象接口。

List接口表示一个列表(数组、队列、链表、栈等),元素可重复,常用实现类有ArrayList和LinkedList,另外还有不常用的Vector。另外,LinkedList还是实现了Queue接口,因此也可以作为队列使用。

Set接口通常表示一个集合,其中的元素不允许重复(通过hashcode和equals函数保证),常用实现类有HashSet和TreeSet,HashSet是通过Map中的HashMap实现的,而TreeSet是通过Map中的TreeMap实现的。另外,TreeSet还实现了SortedSet接口,因此是有序的集合。

抽象类AbstractCollection、AbstractList和AbstractSet分别实现了Collection、List和Set接口,这就是在Java集合框架中用的很多的适配器设计模式,用这些抽象类去实现接口,在抽象类中实现接口中的若干或全部方法,这样下面的一些类只需直接继承该抽象类,并实现自己需要的方法即可,而不用实现接口中的全部抽象方法。

Map是一个映射接口,每个元素都是一个key-value键值对,同样抽象类AbstractMap通过适配器模式实现了Map接口中的大部分函数,TreeMap、HashMap、WeakHashMap等实现类都通过继承AbstractMap来实现,另外,不常用的HashTable直接实现了Map接口,它和Vector都是JDK1.0就引入的集合类。

Iterator是遍历集合的迭代器(不能遍历Map,只用来遍历Collection),Collection的实现类都实现了iterator()函数,它返回一个Iterator对象,用来遍历集合,ListIterator则专门用来遍历List。而Enumeration则是JDK1.0时引入的,作用与Iterator相同,但它的功能比Iterator要少,它只能在Hashtable、Vector和Stack中使用。

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合...
    java成功之路阅读 1,084评论 0赞 19
  • 一、集合与Map 接口说明 1. Collection接口Collection是最基本的集合接口,一个Collec...
    木有粗面_9602阅读 441评论 0赞 1
  • 作者:麸子 生命中我们与谁为伴? 能一起共事,能一起生活,能彼此想念,能彼此愉悦,能产生交集,能相互尊重,能彼此欣...
    麸子存世阅读 325评论 0赞 0
  • RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程...
    闫大伯阅读 4,030评论 3赞 13
  • 习惯了中小学按部就班的课程模式,大学里的选课似乎又成了一个让人头大的问题。不可否认,通过选课这种相对自由的形式,学...
    小小大人呐阅读 480评论 0赞 2

友情链接更多精彩内容