「这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战」
🌊 作者主页:海拥
🌊 作者简介:🥇HDZ核心组成员、🏆全栈领域优质创作者、🥈蝉联C站周榜前十
🌊 粉丝福利:进粉丝群每周送四本书(每位都有),每月抽送各种小礼品(掘金搪瓷杯、抱枕、鼠标垫、马克杯等)
IntBuffer保存要在 I/O 操作中使用的整数值序列。该IntBuffer类提供以下四类经过长期的缓冲区操作:
- 读取单个整数的绝对和相对 get 方法。
- 写入单个整数的绝对和相对放置方法。
- 相对批量 put 和 get 方法将连续的 int 序列从 int 数组或其他一些 int 缓冲区传输到此缓冲区,并从此缓冲区传输到数组。
可以通过以下方式创建 Int 缓冲区:
- 分配():这为缓冲区的内容分配空间。
- wrap():将现有的长数组包装到缓冲区中。
IntBuffer 类的大部分方法都直接类似于 ByteBuffer 定义的方法。
类声明:
public abstract class IntBuffer
extends Buffer
implements Comparable<IntBuffer>
IntBuffer 类的方法:
| 方法 | 描述 |
|---|---|
| allocate(int capacity) | 此方法分配一个新的 int 缓冲区。 |
| array() | 此方法返回支持此缓冲区的 int 数组。 |
| arrayOffset() | 此方法返回缓冲区第一个元素在此缓冲区的后备数组中的偏移量。 |
| asReadOnlyBuffer() | 此方法创建一个新的只读 int 缓冲区,该缓冲区共享此缓冲区的内容。 |
| compact() | 此方法压缩此缓冲区。 |
| compareTo(IntBuffer that) | 此方法将此缓冲区与另一个缓冲区进行比较。 |
| duplicate() | 此方法创建一个共享此缓冲区内容的新 int 缓冲区。 |
| equals(Object ob) | 这个方法告诉这个缓冲区是否等于另一个对象。 |
| get() | 此方法是一个相对 get 方法,并返回缓冲区当前位置的 int。 |
| get(int index) | 此方法是绝对的 get 方法,并返回给定索引处的 int。 |
| get(int[] dst) | 此方法是一个相对批量获取方法并返回此缓冲区。 |
| get(int[] dst, int offset, int length) | 此方法相对是一个批量获取方法并返回此缓冲区。 |
| hasArray() | 此方法告诉此缓冲区是否由可访问的 int 数组支持。 |
| hashCode() | 此方法返回此缓冲区的当前哈希码。 |
| isDirect() | 这个方法告诉这个 int 缓冲区是否是直接的。 |
| order() | 此方法检索此缓冲区的字节顺序。 |
| put(int i) | 此方法是一个相对放置方法并返回此缓冲区。 |
| put(int[] src) | 此方法是相对批量放置方法并返回此缓冲区。 |
| put(int[] src, int offset, int length) | 此方法是相对批量放置方法并返回此缓冲区。 |
| put(IntBuffer src) | 此方法是相对批量放置方法并返回此缓冲区。 |
| put(int index, int i) | 此方法是绝对批量放置方法并返回此缓冲区。 |
| slice() | 此方法创建一个新的 int 缓冲区,其内容是此缓冲区内容的共享子序列。 |
| toString() | 此方法返回一个总结此缓冲区状态的字符串。 |
| wrap(int[] array) | 此方法将一个 int 数组包装到一个缓冲区中。 |
| wrap(int[] array, int offset, int length) | 此方法将一个 int 数组包装到一个缓冲区中。 |
以下是一些演示 IntBuffer 类及其方法的程序:
示例 1:
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
int Capacity = 10;
IntBuffer ib = IntBuffer.allocate(Capacity);
ib.put(100);
ib.put(2, 9);
System.out.println("IntBuffer: "
+ Arrays.toString(ib.array()));
}
}
输出
IntBuffer: [100, 0, 9, 0, 0, 0, 0, 0, 0, 0]
示例 2:
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
int capacity = 10;
try {
IntBuffer ib = IntBuffer.allocate(capacity);
ib.put(4);
ib.put(2, 9);
ib.rewind();
boolean isArray = ib.hasArray();
if (isArray)
System.out.println("IntBuffer ib is"
+ " backed by array");
else
System.out.println(
"IntBuffer ib is"
+ " not backed by any array");
}
catch (IllegalArgumentException e) {
System.out.println(
"IllegalArgumentException catched");
}
catch (ReadOnlyBufferException e) {
System.out.println(
"ReadOnlyBufferException catched");
}
}
}
输出
IntBuffer ib is backed by array
写在最后的
作者立志打造一个拥有100个小游戏的摸鱼网站,更新进度:40/100
我已经写了很长一段时间的技术博客,并且主要通过掘金发表,这是我的一篇关于Java 中的 java.nio.IntBuffer 类。我喜欢通过文章分享技术与快乐。你可以访问我的博客: juejin.cn/user/204034… 以了解更多信息。希望你们会喜欢!😊
💌 欢迎大家在评论区提出意见和建议!💌