I was just wondering if someone could espouse for me the main benefits for choosing one over the other and the detriments that come with that choice.
One's a set, and one's a map. Choose the correct data structure for a given scenario.
A Set has just values, you cannot put duplicates in. a Map has a key/value pair. They have different uses.
A set will get used as a collection, passing in a group of objects, whereas a map is useful for when you have a unique key to identify each element and you want to be able to access it by that key.
They solve different problems, LinkedHashMap does a mapping of keys to values, a LinkedHashSet simply stores a collection of things with no duplicates.
A linked hash map is for mapping key/value pairs -- for example, storing names and ages:
Map<String,Integer> namesAndAges = new LinkedHashMap<String,Integer>();
namesAndAges.put("Benson", 25);
namesAndAges.put("Fred", 19);
On the other hand, a linked hash set is for storing a collection of one thing -- names, for example:
Set<String> names = new LinkedHashSet<String>();
names.add("Benson");
names.add("Fred");
LinkedHashMap
and LinkedHashSet
has only one difference and that comes by HashMap
and HashSet
difference, their parents. Again, HashSet
is just a variation of HashMap
. You can say HashSet
as a HashMap
with all values pointing to a single final object. Therefore, both of them does not give you much differences.
Using LinkedHashSet
, You shall be using only one final object other than your keys.
Using LinkedHashMap
, if you set values as null for all keys, then its better than LinkedHashSet for Set purpose as well.