Я пытаюсь создать глубокую копию списка, но все время получаю сообщение об ошибке, что новый список пуст <<]> даже после того, как все пытаются скопировать исходный список.
Я не уверен, заключается ли моя проблема в глубокой копии кода или я допустил ошибку при добавлении элементов в исходный список. То, что у меня пока есть:
public class OwnedPiggyBank
{
List<Coin> bank;
private Owner owner;
public OwnedPiggyBank(Owner owner)
{
this.owner = owner;
bank = new ArrayList<>();
}
public void add(List<Coin> coins)
{
bank.addAll(coins);
}
public List<Coin> deepCopy()
{
List<Coin> coins = new ArrayList<>();
for (Coin c : bank)
{
coins.add(new Coin(c));
}
return coins;
}
... где тестовый пример, связанный с этим:
public void test()
{
OwnedPiggyBank b = new OwnedPiggyBank("Lola");
List<Coin> coins = new ArrayList<Coin>(Arrays.asList(Coin.PENNY, Coin.LOONIE, Coin.TOONIE));
b.add(coins);
OwnedPiggyBank c = new OwnedPiggyBank(b);
assertEquals(coins, c.deepCopy());
}