2011-05-26 77 views
10

好的,我对这些HashMaps很陌生,但对LinkedLists和HashMaps有一些想法。 如果你可以给我一些简单的关于LinkedHashMap的解释,并且在titile中,这是否意味着我们明确地将它定义为某种类型?什么是LinkedHashMap <k, v>?

回答

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

感谢您的详细解释 – Johnydep 2011-05-26 15:29:51

+0

@Johnydep欢迎您! – evilone 2011-05-26 15:31:52

+0

这正是我需要的。感谢您的详细解答! :) – Dino55 2013-01-29 10:04:56

0

最大的区别是LinkedHashMap是有序的。如果使用迭代器,则键和值将按照它们添加到地图的顺序排列。 HashMap不保证它们返回的顺序。

2

这就是所谓的泛型。 kv必须替换为您要存储的实际类型。 要创建一个映射对字符串整数一个HashMap你可以这样写:

LinkedHashMap<Integer,String> 
1

LinkedHashMap键与ArrayLists或Array中的键的存储方式类似,都按照它们插入的顺序。 Normal HashMaps按其哈希码排序。

k =键 v =值 它们可以是任何类型。

9

它是两个数据结构,的混合一LinkedList,其中插入顺序通过将元素添加到具有访问他们的近邻节点的列表的末尾保存,和一HashMap,或使用一个一个Map存储桶Lists的阵列,其中密钥hashcode()的模数除法余数确定开始存储桶以查询位于该存储桶的内容列表中的密钥的equals()方法。

的好处是,你可以走在HashMap现有元素插入的顺序,由于LinkedList自然,你可以快速跳转到正确的桶中键查找(节省了大量的时间,大集合)如果你有元素的关键。

相关问题