创建字符队列接口。
待开发的三个实现:
固定大小的线性队列。
循环队列(复用数组空间)。
动态队列(根据需要增长)。
1 创建一个名为 ICharQ.java
的文件
// 字符队列接口。
公共接口 ICharQ {
// 向队列中插入一个字符。
void put(char ch);
// 从队列中删除一个字符。
char get();
}
2 创建一个名为 IQDemo.java 的文件。
3 通过添加此处显示的 FixQueue 类开始创建 IQDemo.java:
4 将如下所示的 CircularQueue 类添加到 IQDemo.java。
循环队列操作:重用数组中删除元素时释放的空间,只要有删除,它就可以存储无限数量的元素。
边界条件:当到达数组末尾时,但当未删除的项目被新项目覆盖时,队列未满。
put() 方法必须检查几个条件来确定队列是否已满。满队列的条件: 如果满足以下条件,则队列已满: putloc 的单位小于 getloc。 putloc 位于数组末尾,getloc 位于数组开头。
空队列条件:当 getloc 和 putloc 相等时,队列为空。
数组大小:底层数组会比队列大小大一个单位,以方便检查。
5 在 IQDemo.java 中插入如下所示的 DynQueue 类。它实现了一个“可扩展”队列,当空间耗尽时可以扩展其大小。
- 在此队列实现中,当队列已满时,尝试存储另一个元素会使新的底层数组两倍大 原始数组将被分配,队列的当前内容将被复制到此数组中,并且对新数组的引用将存储在 q.
6 要演示 ICharQ 的三种实现,请将以下类插入到 IQDemo.java 中。它使用 ICharQ 引用来访问所有队列。
类 IQDemo {
public static void main(String args[]) {
固定队列 q1 = new 固定队列(10);
DynQueue q2 = new DynQueue(5);
CircularQueue q3 = new CircularQueue(10);
ICharQ iQ;
char ch;
int i;
iQ = q1;
// 将一些字符插入到固定队列中。
for(i=0; i
iQ.put((char) ('A' i));
// 显示队列。
System.out.print("固定队列的内容:");
for(i=0; i
ch = iQ.get();
System.out.print(ch);
}
System.out.println();
iQ = q2;
// 向动态队列中插入一些字符。
for(i=0; i
iQ.put((char) ('Z' - i));
// 显示队列。
System.out.print("动态队列的内容:");
for(i=0; i
ch = iQ.get();
System.out.print(ch);
}
System.out.println();
iQ = q3;
// 向循环队列中插入一些字符。
for(i=0; i
iQ.put((char) ('A' i));
// 显示队列。
System.out.print("循环队列的内容:");
for(i=0; i
ch = iQ.get();
System.out.print(ch);
}
System.out.println();
// 将更多字符插入循环队列。
for(i=10; i
iQ.put((char) ('A' i));
// 显示队列。
System.out.print("循环队列的内容:");
for(i=0; i
ch = iQ.get();
System.out.print(ch);
}
System.out.println("n存储并消费自"
“循环队列。”);
// 存储并使用循环队列中的项目。
for(i=0; i
iQ.put((char) ('A' i));
ch = iQ.get();
System.out.print(ch);
}
}
}
7 创建 DynQueue 的循环版本。向 ICharQ 添加一个重置队列的方法。创建一个静态方法,将一种队列类型的内容复制到另一种队列类型。
以上是创建队列接口的详细内容。更多信息请关注PHP中文网其他相关文章!

Javaremainsagoodlanguageduetoitscontinuousevolutionandrobustecosystem.1)Lambdaexpressionsenhancecodereadabilityandenablefunctionalprogramming.2)Streamsallowforefficientdataprocessing,particularlywithlargedatasets.3)ThemodularsystemintroducedinJava9im

Javaisgreatduetoitsplatformindependence,robustOOPsupport,extensivelibraries,andstrongcommunity.1)PlatformindependenceviaJVMallowscodetorunonvariousplatforms.2)OOPfeatureslikeencapsulation,inheritance,andpolymorphismenablemodularandscalablecode.3)Rich

Java的五大特色是多态性、Lambda表达式、StreamsAPI、泛型和异常处理。1.多态性让不同类的对象可以作为共同基类的对象使用。2.Lambda表达式使代码更简洁,特别适合处理集合和流。3.StreamsAPI高效处理大数据集,支持声明式操作。4.泛型提供类型安全和重用性,编译时捕获类型错误。5.异常处理帮助优雅处理错误,编写可靠软件。

java'stopfeatureSnificallyEnhanceItsperFormanCeanDscalability.1)对象 - 方向 - incipleslike-polymormormormormormormormormormormormormorableablefleandibleandscalablecode.2)garbageCollectionAutoctionAutoctionAutoctionAutoctionAutoctionautomorymanatesmemorymanateMmanateMmanateMmanagementButCancausElatenceiss.3)

JVM的核心组件包括ClassLoader、RuntimeDataArea和ExecutionEngine。1)ClassLoader负责加载、链接和初始化类和接口。2)RuntimeDataArea包含MethodArea、Heap、Stack、PCRegister和NativeMethodStacks。3)ExecutionEngine由Interpreter、JITCompiler和GarbageCollector组成,负责bytecode的执行和优化。

Java'ssafetyandsecurityarebolsteredby:1)strongtyping,whichpreventstype-relatederrors;2)automaticmemorymanagementviagarbagecollection,reducingmemory-relatedvulnerabilities;3)sandboxing,isolatingcodefromthesystem;and4)robustexceptionhandling,ensuringgr

javaoffersseveralkeyfeaturesthatenhancecodingskills:1)对象 - 方向 - 方向上的贝利奥洛夫夫人 - 启动worldentities

thejvmisacrucialcomponentthatrunsjavacodebytranslatingitolachine特定建筑,影响性能,安全性和便携性。1)theclassloaderloader,links andinitializesClasses.2)executionEccutionEngineExecutionEngineExecutionEngineExecuteByteCuteByteCuteByteCuteBytecuteBytecuteByteCuteByteCuteByteCuteBytecuteByteCodeNinstRonctientions.3)Memo.3)Memo


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

记事本++7.3.1
好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。