KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Is there any practical difference between a Set and Collection in Java, besides the fact that a Collection can include the same element twice? They have the same methods. (For example, does Set give me more options to use libraries which accept Set s but not Collection s?) edit: I can think of at least 5 different situations to judge this question. Can anyone else come up with more? I want to make sure I understand the subtleties here. designing a method which accepts an argument of Set or Collection . Collection is more general and accepts more possibilities of input. (if I'm designing a specific class or interface, I'm being nicer to my consumers and stricter on my subclassers/implementers if I use Collection .) designing a method which returns a Set or Collection . Set offers more guarantees than Collection (even if it's just the guarantee not to include one element twice). (if I'm designing a specific class or interface, I'm being nicer to my consumers and stricter on my subclassers/implementers if I use Set .) designing a class that implements the interface Set or Collection . Similar issues as #2. Users of my class/interface get more guarantees, subclassers/implementers have more responsibility. designing an interface that extends the interface Set or Collection . Very similar to #3. writing code that uses a Set or Collection . Here I might as well use Set ; the only reasons for me to use Collection is if I get back a Collection from someone else's code, or if I have to handle a collection that contains duplicates.
Tags (comma-separated)
Save Edits
Cancel