Java: 如何获取ShortBuffer中的条目数?

Java: How to get the number of items in a ShortBuffer?

我想知道如何获取 ShortBuffer 中的项目数。

我想要缓冲区中真正的项目数,而不是最大容量。

谢谢。

Buffer 不是集合,而是原始数组的(相对较薄的)包装器,它提供了一些对原始值组进行操作的有用方法。与原始数组一样,它始终包含每个有效索引的值。

因此项目的数量总是等于它的容量。

它不会跟踪自创建以来已经写入了哪些索引。由于一个主要用例是 wrap 现有数组,同时仍反映对包装数组的所有更改,因此甚至不可能实现。

ShortBuffer 包含一个 position,用于跟踪 put 元素的位置。你可以用它来知道你放入了多少元素。元素的数量总是等于它的容量,就像其他人提到的那样。

@Test
fun testShortBuffer() {

    val shortBuffer = ShortBuffer.allocate(1024)

    println(shortBuffer.position()) // position 0

    shortBuffer.put(1)
    println(shortBuffer.position()) // position 1

    shortBuffer.put(shortArrayOf(2, 3, 4))
    println(shortBuffer.position()) // position 4

    shortBuffer.clear()
    println(shortBuffer.position()) // position 0
}