コレクションのディープコピーを扱うフォーラムを検索しましたが、私の手ではCollections.copy(dest、src)が期待通りに動作しません。私は何か見落としてますか?Collections.copy(dest、src)まだソースコレクションを参照しています
List<Column> mergedStudies = new ArrayList<Column>(Arrays.asList(new Column[studyColumns.size()]));
Collections.copy(mergedStudies, studyColumns);
for (Iterator itrStudyRecColumns = mergedStudies.iterator(); itrStudyRecColumns.hasNext();) {
Column studyRecCol = (Column) itrStudyRecColumns.next();
for (Iterator itrStudyValColumns = studyValueColumns.iterator(); itrStudyValColumns.hasNext();) {
Column studyValCol = (Column) itrStudyValColumns.next();
if (studyRecCol.getColumnName().equals(studyValCol.getColumnName())) {
// Note: this method dereferences copies to an existing destination collection WITH items appended to end of collection.
CellValue[] cellValArray = studyValCol.getCellValues().toArray(new CellValue[studyValCol.getCellValues().size()]);
studyRecCol.getCellValues().addAll(new ArrayList<CellValue>(Arrays.asList(cellValArray)));
break;
}
}
}
おかげで、
クリス
ColumnはCloneableインターフェイスを実装していますか? – helpermethod