Chapter 13. Sets
A set is a collection of items that cannot contain duplicates; adding an item if it is already present in the set has no effect. The Set
interface has the same methods as those of Collection, but it is defined separately in order
to allow the contract of add (and
addAll, which is defined in terms of
add) to be changed in this way. Returning
to the task manager example in the previous chapter, suppose that on Monday
you have free time to carry out your telephone tasks. You can make the
appropriate collection by adding all your telephone tasks to your Monday
tasks. Let mondayTasks and phoneTasks be as declared in Example 12-1. Using a set (again choosing a conveniently common implementation of
Set), you can write:
Set<Task> phoneAndMondayTasks = new TreeSet<Task>(mondayTasks); phoneAndMondayTasks.addAll(phoneTasks); assert phoneAndMondayTasks.toString().equals( "[code logic, phone Mike, phone Paul]");
This works because of the way that duplicate elements are handled. The
task mikePhone, which is in both mondayTasks and phoneTasks, appears as intended, only once,
inphoneAndMondayTasks—you definitely
don’t want to have to do all such tasks twice over!
Implementing Set
When we used the methods of Collection in the examples of Chapter 12, we emphasized that they would work
with any implementation of Collection.
What if we had decided that we would use one of the Set implementations from the Collections Framework? We would have had to choose between the various concrete implementations ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access