当前位置:网站首页 > Java教程 > 正文

java 容器教程



容器是Java的重要组成部分,在实际应用中选择适当的容器,往往能达到事半功倍的效果。

下图为Java集合框架图,图源于菜鸟教程:

Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。

从上图中也可以看到,Java的类基本上都继承自Collection和Map。我们平时使用的主要是一些具体实现类,例如ArrayList,LinkedList,HashSet,HashMap等。本文将对这些容器的基础操作进行汇总,以便复习与查阅。

NOTE: 初始化容器时需要注意抽象类(或接口)和具体实现类的区别。抽象类只关心抽象方法的定义,不关心具体如何实现。抽象类不可以实例化对象,也就是说new后面不能接抽象类,而要接具体实现类。否则会引发错误。

  • ArrayList
  • LinkedList
  • Vector
  • Stack:Vector的子类

ArrayList和LinkedList常放在一起比较,两者都是线程不安全的。ArrayList的底层是Object数组,LInkedList的底层结构是双向链表。所以两者本质的区别类似于数组与链表的区别(读取、删除等操作有不同)。

Vector的底层同样是Object数组,是线程安全的,但当前大部分情况都使用ArrayList。

初始化方法

 

NOTE:尖括号里不能用基础数据类型,需要包装。

使用方法

  • ArrayList
 
  • LinkedList

ArrayList列举的方法LinkedList都可以用,除此外还有:

 
  • Stack
 

初始化方法

 

使用方法

添加、删除、判空、清空都和ArrayList相同。

 

Queue是Java的队列,队列与栈相反,属于“先进先出”的数据表。Queue是接口,不能直接使用。实现Queue接口的类有:

  • LinkedList
  • ArrayDeque
  • PriorityQueue

PriorityQueue比较特殊,属于优先级队列,可以实现大顶堆或小顶堆。默认是小顶堆。但是可以通过自定义比较器实现其他的需求。

以上几种实现类均非线程安全的。Queue还有一些阻塞的实现类,暂时不在本文记录。

初始化方法

 

使用方法

  • LinkedList
 
  • PriorityQueue
 

Map的实现类常见的有HashMap。

初始化方法

 

使用方法

 

参考:

  1. https://www.cainiaojc.com/java/
  2. https://www.runoob.com/java/

  • 上一篇: java基础菜鸟教程eclipse
  • 下一篇: java77教程
  • 版权声明


    相关文章:

  • java基础菜鸟教程eclipse2024-11-23 20:02:06
  • java教程手写框架2024-11-23 20:02:06
  • java树场教程2024-11-23 20:02:06
  • java修改皮肤教程2024-11-23 20:02:06
  • java安装教程162024-11-23 20:02:06
  • java77教程2024-11-23 20:02:06
  • java注册教程全集2024-11-23 20:02:06
  • java lucene 视频教程2024-11-23 20:02:06
  • java 517教程2024-11-23 20:02:06
  • java游戏开发教程.pdf2024-11-23 20:02:06