Generic Algorithms

The Collections class provides several mildly useful static methods for manipulating lists. For example, executing the commands:

Collections.sort(list3);
Collections.shuffle(list2);
Collections.rotate(list1, 3);

produces the output:

list1 = [Mercury, Venus, Earth, Mars, Jupiter, Venus]
list2 = [Mercury, Venus, Earth, Mars, Jupiter, Venus]
list3 = [Mercury, Venus, Earth, Mars, Jupiter, Venus]

Executing the commands:

Collections.replaceAll(list2, "Venus", "Pluto");
Collections.reverse(list1);

produces the result:

list1 = [Mars, Jupiter, Venus, Mercury, Venus, Earth]
list2 = [Mercury, Jupiter, Mars, Earth, Venus, Venus]
list3 = [Earth, Jupiter, Mars, Mercury, Venus, Venus]

The collections class allows us to create new views of existing collections:

List view1 = Collections.unmodifiableList(list1);
// view1.add("Claire"); this fails