📅  最后修改于: 2023-12-03 14:43:02.607000             🧑  作者: Mango
在Java中,LinkedHashMap
和LinkedHashSet
是两个与哈希表相关的数据结构。它们是对HashMap
和HashSet
的扩展,提供了添加顺序的保持。
LinkedHashMap
继承自HashMap
,使用一个双向链表将元素按照插入顺序连接起来。LinkedHashSet
继承自HashSet
,内部使用LinkedHashMap
来保持元素的插入顺序。
Map<String, Integer> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("apple", 1);
linkedHashMap.put("banana", 2);
linkedHashMap.put("orange", 3);
System.out.println(linkedHashMap); // 输出:{apple=1, banana=2, orange=3}
遍历LinkedHashMap
的元素时,会按照插入的顺序进行遍历。可以使用entrySet()
方法获取键值对的集合,也可以使用keySet()
、values()
方法获取键或值的集合。
for (Map.Entry<String, Integer> entry : linkedHashMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
// 输出:
// apple: 1
// banana: 2
// orange: 3
Set<Integer> linkedHashSet = new LinkedHashSet<>();
linkedHashSet.add(1);
linkedHashSet.add(2);
linkedHashSet.add(3);
System.out.println(linkedHashSet); // 输出:[1, 2, 3]
遍历LinkedHashSet
的元素时,会按照插入的顺序进行遍历。可以使用迭代器或循环来遍历。
Iterator<Integer> iterator = linkedHashSet.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
// 输出:
// 1
// 2
// 3
LinkedHashMap
和LinkedHashSet
是带有保持插入顺序特性的哈希表数据结构。在需要按照插入顺序遍历元素时,它们非常有用。着重考虑元素顺序的应用场景中,可选择使用LinkedHashMap
和LinkedHashSet
。