Problem 1 (Collections.unmodifiableList())

Let's create a list of MutableMelon via the Collections.unmodifiableList() method:

// Crenshaw(2000g), Gac(1200g)
private final MutableMelon melon1
= new MutableMelon("Crenshaw", 2000);
private final MutableMelon melon2
= new MutableMelon("Gac", 1200);

private final List<MutableMelon> list
= Collections.unmodifiableList(Arrays.asList(melon1, melon2));

So, is list unmodifiable or immutable? The answer is unmodifiable. While mutator methods will throw UnsupportedOperationException, the underlying melon1 and melon2 are mutable. For example, let's set the weights of our melons to 0:

melon1.setWeight(0);
melon2.setWeight(0);

Now, the list will reveal the following melons (so the list was mutated):

Crenshaw(0g), Gac(0g)
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset