好的,我对这些HashMaps很陌生,但对LinkedLists和HashMaps有一些想法。 如果你可以给我一些简单的关于LinkedHashMap的解释,并且在titile中,这是否意味着我们明确地将它定义为某种类型?什么是LinkedHashMap <k, v>?
10
A
回答
24
LinkedHashMap中是 哈希表和链表的结合。它有一个 可预测的迭代顺序(一个la 链表),但检索速度 是一个HashMap。 迭代的顺序由 广告订单决定,因此您将按照 添加到此地图的顺序重新获取 键值。你必须在这里仔细点 ,因为重新插入 一键不会改变原来的 的顺序。
k代表Key和v代表Value。
/*
Simple Java LinkedHashMap example
This simple Java Example shows how to use Java LinkedHashMap.
It also describes how to add something to LinkedHashMap and how to
retrieve the value added from LinkedHashMap.
*/
import java.util.LinkedHashMap;
public class JavaLinkedHashMapExample {
public static void main(String[] args) {
//create object of LinkedHashMap
LinkedHashMap lHashMap = new LinkedHashMap();
/*
Add key value pair to LinkedHashMap using
Object put(Object key, Object value) method of Java LinkedHashMap class,
where key and value both are objects
put method returns Object which is either the value previously tied
to the key or null if no value mapped to the key.
*/
lHashMap.put("One", new Integer(1));
lHashMap.put("Two", new Integer(2));
/*
Please note that put method accepts Objects. Java Primitive values CAN NOT
be added directly to LinkedHashMap. It must be converted to corrosponding
wrapper class first.
*/
//retrieve value using Object get(Object key) method of Java LinkedHashMap class
Object obj = lHashMap.get("One");
System.out.println(obj);
/*
Please note that the return type of get method is an Object. The value must
be casted to the original class.
*/
}
}
/*
Output of the program would be
1
*/
0
最大的区别是LinkedHashMap是有序的。如果使用迭代器,则键和值将按照它们添加到地图的顺序排列。 HashMap不保证它们返回的顺序。
2
这就是所谓的泛型。 k
和v
必须替换为您要存储的实际类型。 要创建一个映射对字符串整数一个HashMap你可以这样写:
LinkedHashMap<Integer,String>
1
阅读关于Generics in Java维基百科的内容。
1
LinkedHashMap键与ArrayLists或Array中的键的存储方式类似,都按照它们插入的顺序。 Normal HashMaps按其哈希码排序。
k =键 v =值 它们可以是任何类型。
9
它是两个数据结构,的混合一LinkedList
,其中插入顺序通过将元素添加到具有访问他们的近邻节点的列表的末尾保存,和一HashMap
,或使用一个一个Map
存储桶Lists
的阵列,其中密钥hashcode()
的模数除法余数确定开始存储桶以查询位于该存储桶的内容列表中的密钥的equals()
方法。
的好处是,你可以走在HashMap
现有元素插入的顺序,由于LinkedList
自然,你可以快速跳转到正确的桶中键查找(节省了大量的时间,大集合)如果你有元素的关键。
相关问题
- 1. 返回LinkedHashMap的方法的签名<K,V>
- 2. 什么是由K均值
- 3. Java Map <K,V>:为什么get(object)没有得到(K)?
- 4. 为什么地图<K,V>不能扩展功能<K,V>?
- 5. 为什么内部类是TreeMap.Entry <K,V>通用?
- 6. 什么是对std :: map <K, V> :: mapped_type的限制?
- 7. foreach中的$ k => $ v是什么($ ex为$ k => $ v)是什么意思?
- 8. 返回MyNestedClass <K>当MyNestedClass不是MyNestedClass <K>?
- 9. 什么是<NS0:什么?
- 10. 什么时候是K 1024,什么时候是1000?
- 11. LinkedHashMap <String,Object> .clone();
- 12. number xor K - K = number + K xor K,为什么?
- 13. 什么是K-B6-KEY标头?
- 14. LL(k)是什么普遍的语言?
- 15. “int k =((int)i)”是做什么的?
- 16. PHP中的$ _REQUEST [$ K]究竟是什么?
- 17. 计数排序O(n + k)时间复杂度是什么k?
- 18. 什么是<#= #>
- 19. 什么是<%= ... %>
- 20. k怎么是零?
- 21. SortedList <K,V> vs SortedDictionary <K,V> vs词典<K,V>
- 22. 为什么LinkedHashMap没有实现SortedMap?
- 23. 如何结束LinkedHashMap是一种原始类型。引用泛型类型的LinkedHashMap <K,V>应该是参数化问题在Eclipse
- 24. 什么是PHP中的“<<< SQL”?
- 25. Php <<<是什么意思?
- 26. 什么是Swift上的+++和<<<?
- 27. 什么是C#通用约束的Java等价物“T,K:其中T:它<K>”?
- 28. JSON中LinkedHashMap的正确表示方式是什么?
- 29. LinkedHashMap中'accessOrder'字段的用途是什么?
- 30. 什么是<Type>叫什么?
感谢您的详细解释 – Johnydep 2011-05-26 15:29:51
@Johnydep欢迎您! – evilone 2011-05-26 15:31:52
这正是我需要的。感谢您的详细解答! :) – Dino55 2013-01-29 10:04:56