如果List中存储ByteBuffer数据类型,则可以使用List中的toArray()方法转成ByteBuffer[]数组类型,示例代码如下:
public class Test16 { public static void main(String[] args) { ByteBuffer buffer1 = ByteBuffer.wrap(new byte[] { 'a', 'b', 'c' }); ByteBuffer buffer2 = ByteBuffer.wrap(new byte[] { 'x', 'y', 'z' }); ByteBuffer buffer3 = ByteBuffer.wrap(new byte[] { '1', '2', '3' }); List<ByteBuffer> list = new ArrayList<>(); list.add(buffer1); list.add(buffer2); list.add(buffer3); ByteBuffer[] byteBufferArray = new ByteBuffer[list.size()]; list.toArray(byteBufferArray); System.out.println(byteBufferArray.length); for (int i = 0; i < byteBufferArray.length; i++) { ByteBuffer eachByteBuffer = byteBufferArray[i]; while (eachByteBuffer.hasRemaining()) { System.out.print((char) eachByteBuffer.get()); } System.out.println(); } } }
程序运行结果如下:
3 abc xyz 123
至此,已经将Buffer类的全部API进行了介绍,熟练掌握父类Buffer的API对学习子类有非常大的帮助,因为这些API是可以被子类所继承并使用的。