参考ArrayList的实现方式,实现了一个byte数组,提供了数组的动态添加功能。可以应用于协议开发时的数据的组装。 public final class ByteArray { private byte[] element; private int size; public ByteArray() { this(10); } public ByteArray(int initialCapacity) { element = new byte[initialCapacity]; } public void add(byte b) { ensureCapacity(size + 1); element[size++] = b; } public void addAll(byte[] bytes) { if (bytes == null || bytes.length == 0) { return; } int numNew = bytes.length; ensureCapacity(size + numNew); System.arraycopy(bytes, 0, element, size, numNew); size += numNew; } private void ensureCapacity(int minCapacity) { int oldCapacity = element.length; if (minCapacity > oldCapacity) { int newCapacity = (oldCapacity * 3) / 2 + 1; if (newCapacity < minCapacity) newCapacity = minCapacity; element = Arrays.copyOf(element, newCapacity); } } public int size() { return size; } public byte[] toArray() { return Arrays.copyOf(element, size); } }