public HeaderTable copy(UNode uNode) { HeaderTable newTable = new HeaderTable(windowSize); List<UNode> distinctNodes = uNode.getDistinctNodes(); for (HeaderTableItem item : this.headerTableItems) { HeaderTableItem newTableItem = newTable.addNewTableItem(item.getItemId()); newTableItem.addProbabilityAndPrefixValue( item.getTotalProbability(), item.getTotalPrefixValue()); } for (UNode node : distinctNodes) { newTable.updateHeaderTable(node, 0, 0); } return newTable; }