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
}
我想知道如何获取 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
}