ArrayList <short>指向ShortBuffer(java)

时间:2015-07-17 09:17:42

标签: java arraylist buffer

问题:我在shorts收集了未知数量的ArrayList<Short>。完成后,我需要将其放入direct ShortBuffer

我的解决方案:编写一个简单的循环。

但在我的最终代码中,这只会进行一次,并不是时间关键。在这种情况下,我总是更喜欢需要更少代码的解决方案。

可以用一两个班轮来完成吗?

编辑:

使用ArrayList<Short>.toArray我可以获得Short[]数组,但对于ShortBuffer.put(),我需要一个short[]数组。那就是问题所在。

1 个答案:

答案 0 :(得分:1)

short[] shortArray = IntStream.range(0, array.length)
    .collect(() -> new short[array.length], (b, i) -> b[i] = array[i], null);

我认为只要它不包含空值,就可以将Short[]转换为short[]。或者您可以使用toPrimitive方法执行apache commons lang

另外,When to use Array, Buffer or direct Buffer:除非有使用直接缓冲的特殊原因,否则你可能不应该这样做。