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

问题描述

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...