| |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.nio
类 FloatBuffer
java.lang.Object java.nio.Buffer java.nio.FloatBuffer
- 所有已实现的接口:
- Comparable<FloatBuffer>
public abstract class FloatBuffer
- extends Buffer
- implements Comparable<FloatBuffer>
float 缓冲区。
此类定义了 float 缓冲区上的四类操作:
将此缓冲区中的连续 float 序列传输到数组中的相对
批量 get
方法;
将 float 数组或其他 float 缓冲区中的连续 float 序列传输到此缓冲区的相对
批量 put
方法;以及
float 缓冲区的
compacting
、
duplicating
和
slicing
方法。
float 缓冲区可以通过 allocation
创建,此方法通过
wrapping
将一个现有 float 数组包装到缓冲区中来为缓冲区内容分配空间,或者通过创建现有字节缓冲区的视图来创建
像字节缓冲区一样,float 缓冲区要么是直接的,要么是非直接的。通过此类的 wrap 方法创建的 float 缓冲区将是非直接的。当且仅当字节缓冲区本身为直接时,作为字节缓冲区的视图创建的 float 缓冲区才是直接的。通过调用 isDirect
方法可以确定 float 缓冲区是否为直接的。
指定此类中的方法(它们不返回其他值)以返回这些方法被调用时所在的缓冲区。这允许对方法调用进行链接。
- 从以下版本开始:
- 1.4
方法摘要 | |
---|---|
static FloatBuffer | allocate(int capacity) 分配新的 float 缓冲区。 |
float[] | array() 返回实现此缓冲区的 float 数组(可选操作)。 |
int | arrayOffset() 返回此缓冲区的第一个元素在缓冲区的底层实现数组中的偏移量(可选操作)。 |
abstract FloatBuffer | asReadOnlyBuffer() 创建共享此缓冲区内容的新的只读 float 缓冲区。 |
abstract FloatBuffer | compact() 压缩此缓冲区(可选操作)。 |
int | compareTo(FloatBuffer that) 将此缓冲区与另一个缓冲区进行比较。 |
abstract FloatBuffer | duplicate() 创建共享此缓冲区内容的新的 float 缓冲区。 |
boolean | equals(Object ob) 判断此缓冲区是否与另一个对象相同。 |
abstract float | get() 相对 get 方法。 |
FloatBuffer | get(float[] dst) 相对批量 get 方法。 |
FloatBuffer | get(float[] dst, int offset, int length) 相对批量 get 方法。 |
abstract float | get(int index) 绝对 get 方法。 |
boolean | hasArray() 判断是否可通过一个可访问的 float 数组实现此缓冲区。 |
int | hashCode() 返回此缓冲区的哈希码。 |
abstract boolean | isDirect() 判断此 float 缓冲区是否为直接的。 |
abstract ByteOrder | order() 检索此缓冲区的字节顺序。 |
abstract FloatBuffer | put(float f) 相对 put 方法(可选操作)。 |
FloatBuffer | put(float[] src) 相对批量 put 方法(可选操作)。 |
FloatBuffer | put(float[] src, int offset, int length) 相对批量 put 方法(可选操作)。 |
FloatBuffer | put(FloatBuffer src) 相对批量 put 方法(可选操作)。 |
abstract FloatBuffer | put(int index, float f) 绝对 put 方法(可选操作)。 |
abstract FloatBuffer | slice() 创建新的 float 缓冲区,其内容是此缓冲区内容的共享子序列。 |
String | toString() 返回总结了此缓冲区状态的字符串。 |
static FloatBuffer | wrap(float[] array) 将 float 数组包装到缓冲区中。 |
static FloatBuffer | wrap(float[] array, int offset, int length) 将 float 数组包装到缓冲区中。 |
从类 java.nio.Buffer 继承的方法 |
---|
capacity, clear, flip, hasRemaining, isReadOnly, limit, limit, mark, position, position, remaining, reset, rewind |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
方法详细信息 |
---|
allocate
public static FloatBuffer allocate(int capacity)
- 分配新的 float 缓冲区。
新缓冲区的位置将为零,其界限将为其容量,其标记是未定义的。它将具有一个
#array
底层实现数组,且其
数组偏移量
将为零。
- 参数:
capacity
- 新缓冲区的容量,以 float 为单位- 返回:
- 新的 float 缓冲区
- 抛出:
IllegalArgumentException
- 如果 capacity 为负整数
wrap
public static FloatBuffer wrap(float[] array, int offset, int length)
- 将 float 数组包装到缓冲区中。
给定 float 数组将支持新缓冲区;即缓冲区修改将导致数组修改,反之亦然。新缓冲区的容量将为 array.length,其位置将为 offset,其界限将为 offset + length,其标记是未定义的。其
底层实现数组
将为给定数组,并且其
数组偏移量
将为零。
- 参数:
array
- 支持新缓冲区的数组offset
- 要使用的子数组的偏移量;必须为非负且不大于 array.length。将新缓冲区的位置设置为此值。length
- 要使用的子数组的长度;必须为非负且不大于 array.length - offset。将新缓冲区的界限设置为 offset + length。- 返回:
- 新的 float 缓冲区
- 抛出:
IndexOutOfBoundsException
- 如果关于 offset 和 length 参数的前提不成立
wrap
public static FloatBuffer wrap(float[] array)
- 将 float 数组包装到缓冲区中。
给定 float 数组将支持新缓冲区;即缓冲区修改将导致数组修改,反之亦然。新缓冲区的容量和界限将为 array.length,其位置将为零,其标记是未定义的。其
底层实现数组
将为给定数组,并且其
数组偏移量
将为零。
- 参数:
array
- 实现此缓冲区的数组- 返回:
- 新的 float 缓冲区
slice
public abstract FloatBuffer slice()
- 创建新的 float 缓冲区,其内容是此缓冲区内容的共享子序列。
新缓冲区的内容将从此缓冲区的当前位置开始。此缓冲区内容的更改在新缓冲区中是可见的,反之亦然;这两个缓冲区的位置、界限和标记值是相互独立的。
新缓冲区的位置将为零,其容量和界限将为此缓冲区中所剩余的 float 数量,其标记是未定义的。当且仅当此缓冲区为直接时,新缓冲区才是直接的,当且仅当此缓冲区为只读时,新缓冲区才是只读的。
- 返回:
- 新的 float 缓冲区
duplicate
public abstract FloatBuffer duplicate()
- 创建共享此缓冲区内容的新的 float 缓冲区。
新缓冲区的内容将为此缓冲区的内容。此缓冲区内容的更改在新缓冲区中是可见的,反之亦然;这两个缓冲区的位置、界限和标记值是相互独立的。
新缓冲区的容量、界限、位置和标记值将与此缓冲区相同。当且仅当此缓冲区为直接时,新缓冲区才是直接的,当且仅当此缓冲区为只读时,新缓冲区才是只读的。
- 返回:
- 新的 float 缓冲区
asReadOnlyBuffer
public abstract FloatBuffer asReadOnlyBuffer()
- 创建共享此缓冲区内容的新的只读 float 缓冲区。
新缓冲区的内容将为此缓冲区的内容。此缓冲区的更改在新缓冲区中是可见的,但新缓冲区将是只读的并且不允许修改共享内容。两个缓冲区的位置、界限和标记值是相互独立的。
新缓冲区的容量、界限、位置和标记值将与此缓冲区相同。
如果此缓冲区本身是只读的,则此方法与
duplicate
方法完全相同。 - 返回:
- 新的只读 float 缓冲区
get
public abstract float get()
- 相对 get 方法。读取此缓冲区当前位置的 float,然后该位置递增。
- 返回:
- 缓冲区当前位置的 float
- 抛出:
BufferUnderflowException
- 如果缓冲区当前位置不小于其界限