Java 核心技术学习笔记— Java集合框架部分内容#yyds干货盘点#

网友投稿 643 2022-05-28

Java 最初版本只提供了最初的几个 Java 集合框架个类:

Vector

Stack

Hashable

BitSet

Enumeration

其中 Enumeration 接口提供了一种用于访问任意容器中各个元素的抽象机制。

Java 集合类库将接口( interface )与实现(implementation)分离。

队列是如何分离的

队列涉及的几个操作:

在队尾添加元素

在队头删除元素

查找队列中元素的个数

特点:先入先出

Java 核心技术学习笔记— Java集合框架部分内容#yyds干货盘点#

队列的接口:

public interface Queue // a simplified form of the interface in the stardard library{ void add(E element); E remove(); int size();}

在数据结构课中,队列通常有两种实现方式:

使用循环数组;但这种方式的局限是队列的长度有限。

使用链表

代码表示如下:

public class CircularArrayQueue implements Queue // not an actual library class{ private int head; private int tail; CircularArrayQueue(int capacity) {...} public void add(E element) {...} public E remove() {...} public int size() {...} private E[] elements;}public class LinkedListQueue implements Queue // not an actual library class{ private Link head; private Link tail; LinkedListQueue() {...} public void add(E element) {...} public E remove() {...} public int size() {...}}

注释:实际上,Java 类库没有名为 CirclularArrayQueue 和 LinkedListQueue 的类。这里只是以这些类作为示例来解释集合接口与实现在概念上的区分。

Queue 的使用

假设定义了上述的  CircularArrayQueue  和  LinkedListQueue  之后,就可以直接使用:

Queue expressLane = new CircularArrayQueue<>(100);expressLane.add(new Customer("Harry")

Queue expressLane = new LinkedListQueue<>();expressLane.add(new Customer("Bug")

循环数组要比链表高效,因此多数人优先选择循环数组。

但是循环数组是一个有界数组,即容量有限。如果使用的对象数量没有上限,最好使用链表实现。

Java 数据结构

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:10分钟快速入门RDS丨【我的华为云体验之旅】
下一篇:什么是数据库“存算分离”架构?
相关文章