有人可以解释选择一个选择的主要好处以及该选择带来的损害吗?

有帮助吗?

解决方案

他们解决了不同的问题,linkedhashmap对键映射到值,linkedhashset只是存储了无重复的事物集合。

链接的哈希地图用于映射键/值对 - 例如,存储名称和年龄:

Map<String,Integer> namesAndAges = new LinkedHashMap<String,Integer>();
namesAndAges.put("Benson", 25);
namesAndAges.put("Fred", 19);

另一方面,链接的哈希集集用于存储一件事情的集合 - 例如:

Set<String> names = new LinkedHashSet<String>();
names.add("Benson");
names.add("Fred");

其他提示

linkedhashset内部包含一个双关联列表,该列表通过其所有定义元素顺序的条目运行。该类允许零元素。

此类实现不同步,因此必须在外部同步。 LinkedHashMap也不同步,必须在外部同步

例如:

Map map = Collections.synchronizedMap(new LinkedHashMap());

除此之外,LinkedHashset还存储每个元素的单个值,LinkedHashMap存储键/值对。
在下面的图中,您可以看到java.util.collections。实心盒显示混凝土类实现
Alt Text http://www.softfinity.com/diag1.png

一组只有值,您无法将重复项放入。地图具有键/值对。他们有不同的用途。

一组将被用作集合,传递一组对象,而地图对于有一个唯一的键来识别每个元素并且希望能够通过该密钥访问它。

一个是一套,一个是一张地图。为给定情况选择正确的数据结构。

LinkedHashMapLinkedHashSet 只有一个差异, HashMapHashSet 差异,他们的父母。再次, HashSet 只是一个变体 HashMap. 。你可以说 HashSet 作为一个 HashMap 所有值都指向一个最终对象。因此,他们俩都没有给您太大的差异。

使用 LinkedHashSet, ,您将仅使用一个最终对象。使用 LinkedHashMap, ,如果将所有键的值设置为null,则其比LinkedHashset也更好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top