final ByteBuffer buffer = ByteBuffer.allocate(getSerializedDataSize());
Serialization.writeType(buffer, Serialization.Type.SPARSE_VECTOR);
Serialization.writeVectorLength(buffer, length());
Serialization.writeVectorCardinality(buffer, cardinality());
ByteVectorIterator it = nonZeroIterator();
while (it.hasNext()) {
it.next();
Serialization.writeVectorIndex(buffer, it.index());
Serialization.writeVectorValue(buffer, it.get());
}
buffer.rewind();
return buffer;
}