7

Is there any specific reason(other than what is mentioned below) why all the methods declared in java.util.Collection is duplicated in java.util.List interface?

According to java.util.List Api:

The List interface places additional stipulations, beyond those specified in the Collection interface, on the contracts of the iterator, add, remove, equals, and hashCode methods. Declarations for other inherited methods are also included here for convenience.

Just for the sake of addtional documentation(stipulations) is it good to repeat the method declarations like that?

Mahendran
  • 2,191
  • 5
  • 24
  • 40

2 Answers2

2

Just for the sake of addtional documentation(stipulations) is it good to repeat the method declarations like that?

How would you do it differently? What is the downside?

Yes, this really is the simplest way to do that.

Peter Lawrey
  • 525,659
  • 79
  • 751
  • 1,130
1

The List interface places additional stipulations, beyond those specified in the Collection interface, on the contracts of the iterator, add, remove, equals, and hashCode methods. Declarations for other inherited methods are also included here for convenience.

For e.g the Javadoc of add method inside List interface reads out to:

Appends the specified element to the end of this list (optional operation).

Lists that support this operation may place limitations on what elements may be added to this list. In particular, some lists will refuse to add null elements, and others will impose restrictions on the type of elements that may be added. List classes should clearly specify in their documentation any restrictions on what elements may be added.

whereas Javadoc of add method inside Collection interface reads out to:

Ensures that this collection contains the specified element (optional operation). Returns true if this collection changed as a result of the call. (Returns false if this collection does not permit duplicates and already contains the specified element.)

Collections that support this operation may place limitations on what elements may be added to this collection. In particular, some collections will refuse to add null elements, and others will impose restrictions on the type of elements that may be added. Collection classes should clearly specify in their documentation any restrictions on what elements may be added.

If a collection refuses to add a particular element for any reason other than that it already contains the element, it must throw an exception (rather than returning false). This preserves the invariant that a collection always contains the specified element after this call returns.

Aditya
  • 1,334
  • 1
  • 12
  • 23