// If keys are locked, we can share the same keys. public StringDoubleMap copy() { StringDoubleMap newMap = new StringDoubleMap(); newMap.mapType = mapType; newMap.locked = locked; newMap.num = num; newMap.keys = locked ? keys : (String[]) keys.clone(); // Share keys! newMap.values = (double[]) values.clone(); return newMap; }