问题描述
我想知道如何在ShortBuffer中获取项目数。
我想要缓冲区中真正存在的项目数,而不是最大容量。
谢谢。
解决方法
Buffer不是集合,而是原始数组周围的(比较薄的)包装器,它提供了一些对原始值组进行操作的有用方法。像原始数组一样,它始终包含每个有效索引的值。
因此,项目数始终等于其容量。
它不跟踪自创建以来已经写入了哪些索引。作为一个主要用例,是在wrap仍反映已包装数组的所有更改的情况下,30 seconds甚至无法实现。
, 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
}