Save yet another array allocation with this:
  this.namesAndValues = builder.namesAndValues.toArray(new String[builder.namesAndValues.size()]);