Java 中的 DoubleBuffer compact() 方法及示例2025 年 1 月 7 日 | 阅读 3 分钟 Java.nio.DoubleBuffer 类提供了一个 compact() 方法。可以使用 DoubleBuffer 类来压缩给定的缓冲区。值从缓冲区当前位置开始复制到缓冲区的开头,直到缓冲区的界限。然后,将 n+1 赋给缓冲区的下一个插槽,并将其容量设置为其界限。复制的浮点数数量决定了缓冲区的当前位置。 语法 返回值:此方法返回的新 DoubleBuffer 包含与此缓冲区相同的原始内容。 异常:如果缓冲区是只读的,此函数会引发 ReadOnlyBufferException。 示例 1DoubleBuffer 是 java.nio 包中的一个类,可以用来处理双精度浮点整数缓冲区,如给出的 Java 代码所示。通过使用 compact() 方法创建压缩后的缓冲区,将剩余元素移动到开头,然后该缓冲区即可进行进一步的写入操作。在显示压缩后的缓冲区当前状态并添加新值后,DoubleBuffer 说明了如何有效地处理数据以进行后续操作,同时保留缓冲区的状态,如位置和界限。 实施文件名:BufferCompactExample1.java 输出 The Original DoubleBuffer is given by : [6.320000171661377, 7.650000095367432, 8.720000267028809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] at the position: 3 at the limit: 10 The Compacted DoubleBuffer is given by : [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] at the Position: 7 at the limit: 10 The Updated Compacted DoubleBuffer is given by : [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 9.609999656677246, 0.0, 0.0] at the Position: 8 at the limit: 10 示例 2该代码演示了如何在 Java 中使用 DoubleBuffer。它首先创建一个容量为 10 个字节的 DoubleBuffer,向其中插入三个浮点整数,然后将其重置。AsReadOnlyBuffer() 创建了缓冲区的只读副本。然后打印出只读缓冲区的当前位置和界限,以及其内容和状态。当尝试使用 compact() 对只读缓冲区进行压缩时,会引发 ReadOnlyBufferException,因为不允许对只读缓冲区执行此操作。 实施文件名:BufferCompactExample2.java 输出 The ReadOnlyBuffer DoubleBuffer is given by: 6.320000171661377, 7.650000095367432, 8.720000267028809, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, at the Position: 0 at the limit: 10 Trying to compact the doublebuff1 ReadOnlyBuffer The Exception throws java.nio.ReadOnlyBufferException |
Java 5 中引入的泛型为开发人员编写和使用 Java 集合的方式带来了革命性的变化。泛型允许类和方法对各种类型的对象进行操作,同时提供编译时类型安全。这一强大功能具有许多优点,有助于编写更清晰、更...
阅读 4 分钟
该主题主要针对希望处理 Windows XP 或 Windows Vista 上 Java 编程语言的程序员或开发人员。本节将讨论使用 Java 进行 Windows 编程以及与该概念相关的其他详细信息。什么是 Windows 编程 尽管这个问题的答案总是...
5 分钟阅读
在软件开发的世界里,高效地管理任务和编排工作流程对于任何应用程序的成功都至关重要。开发人员面临的一个常见挑战是在特定时间间隔安排和执行作业。在本节中,我们将探讨一个作业的设计和实现...
阅读 6 分钟
Java 5 中引入的泛型为开发人员编写和使用 Java 集合的方式带来了革命性的变化。泛型允许类和方法对各种类型的对象进行操作,同时提供编译时类型安全。这一强大功能具有许多优点,有助于编写更清晰、更...
阅读 4 分钟
在 Java 中,Vigesimal 是一种基数为 20 的数制。与十二进制数一样,我们可以使用预定义或用户定义的方法来查找二进制、八进制、十进制和十六进制数的等效 Vigesimal 数,或者查找等效的其他进制数的...
阅读 3 分钟
java.util.function 包在 Java 8 中引入,其中包含 DoubleFunction 接口,用于支持 Java 中的函数式编程。它代表一个在接收双精度输入后生成 R 类型结果的函数。只接受一个泛型...
阅读 3 分钟
通过交换行来排列二进制网格,使其交换次数最少,这是一个令人兴奋的问题,它需要将给定的二进制网格转换为特定形式。目标是确保网格中的每行 i 都至少...
阅读 31 分钟
如果一个数字 n 的各位数字构成一个等差数列,那么它就是一个直线数。显然,要判断各位数字是否构成等差数列,至少需要三位数字。因此,...
7 分钟阅读
很多时候,我们需要克隆一个数组来备份其原始元素。我们有一些特殊的字符串和数字,如回文数、回文字符串和阿姆斯特朗数,为了检查它们的特殊性,我们需要克隆数组。例如,要检查……
7 分钟阅读
CRUD代表创建、读取/检索、更新和删除,这些是针对持久存储执行的基本操作。CRUD涉及使用标准化的HTTP方法,并侧重于数据操作。CRUD操作是数据中心的,并与HTTP方法的标准化使用保持一致。CRUD...
阅读 13 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India