<< Chapter < Page Chapter >> Page >

Display the collection's contents

Then, as before, the code in Listing 4 gets an iterator and uses it to access and display the contents of the ArrayList collection.

The ArrayList class implements the List interface, which does not prohibit duplicate elements, and does not maintain its elements in sortedorder. Therefore, in this case, the following text was displayed:

44321

All five element values are displayed, including the duplicate, in the order in which they were added to the list.

The important point

The important point is that although the fillIt method calls the same method name ( add ) on each of the collection objects, the behavior of that method is different in each case. In both cases, the behavior isappropriate for the underlying data structure. Furthermore, the underlying data structure isn't even known to the fillIt method.

No duplicate elements in ascending order

In the first case, where the underlying data structure was a TreeSet object (type SortedSet ), the duplicate element was eliminated, and the elements were stored so as to be accessible in ascending order.

Duplicates allowed with no sorting

In the second case, where the underlying data structure was an ArrayList object (type List ), all five elements, including the duplicate element were stored in the collection. Furthermore, they were stored and laterretrieved in the same order in which they were added.

Structure of the core interfaces

The core collection interfaces in the Java Collections Framework do not all extend from a common root interface.

Rather, the inheritance structure of the core interfaces is shown below. Indentation is used to indicate the parent-child relationships among the interfaces.

  • Collection
    • Set
      • SortedSet
    • List
    • Queue
    • Deque
  • Map
    • SortedMap

A Map is not a true Collection

As you can see, that there is no common root interface. Rather, there are two distinct trees, one rooted by Collection and the other rooted by Map . According to The Java Tutorial from Oracle, "a Map is not a true Collection." I will have more to say about this in a future module.

Some operations are optional

Every class that implements an interface in the tree rooted in Collection is not required to support all of the methods (operations) declared in the Collection interface.

Rather, some of the methods in the Collection interface are designated as "optional operation" in the documentation. (See the list of optional methods for the Collection interface below.)

According to the contract for the Collections Framework, if a given implementation doesn't support a specific method, it must throw an UnsupportedOperationException . The author of the implementation is responsible for providing documentation that identifies the optional operationsthat the implementation does and does not support.

Support for optional operations

This should not be an issue unless you are either defining your own implementation, or using an implementation defined by someone other than theprogrammers at Oracle. All of the general-purpose implementations from Oracle appear to support all of the optional operations.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask