code: @Override
    public void write(DataOutput out) throws IOException {
      super.write(out);
      for (int i = 0; i < fpVector.length; i++) {
        List<Key> list = fpVector[i];
        out.writeInt(list.size());
        for (Key k : list) {
          k.write(out);
        }
      }
      for (int i = 0; i < keyVector.length; i++) {
        List<Key> list = keyVector[i];
        out.writeInt(list.size());
        for (Key k : list) {
          k.write(out);
        }
      }
      for (int i = 0; i < ratio.length; i++) {
        out.writeDouble(ratio[i]);
      }
    }
docs: Writable