位置:首页 > Java技术 > Java基础教程 > Java LinkedHashMap类

Java LinkedHashMap类

此类扩展了HashMap,并保持在映射的条目的链接列表,在它们插入的顺序。

这使得插入顺序迭代的映射。也就是说,迭代LinkedHashMap中时,该元素为被插入的顺序返回。

还可以创建一个LinkedHashMap,返回它的元素在上次访问的顺序。

LinkedHashMap的类支持五种构造函数。第一种形式构造一个默认的LinkedHashMap:

LinkedHashMap( )

第二种形式使用m 初始化 LinkedHashMap的元素:

LinkedHashMap(Map m)

第三种形式初始化容量:

LinkedHashMap(int capacity)

第四种形式初始化容量和填充比例。容量的含义和填写的比例是相同的HashMap:

LinkedHashMap(int capacity, float fillRatio)

最后一种形式允许指定的元素是否将被存储在链表按插入顺序,或按顺序的最后一次访问。如果Order为true,访问使用顺序。如果Order为false,那么插入order 被使用。

LinkedHashMap(int capacity, float fillRatio, boolean Order)

除了从它的父类继承的方法,LinkedHashMap中定义了以下方法:

SN 方法及描述
1 void clear() 
从此映射中移除所有映射.
2 boolean containsKey(Object key) 
如果此映射一个或多个键映射到指定值,则返回true.
3 Object get(Object key) 
返回此映射中映射到指定键的值.
4 protected boolean removeEldestEntry(Map.Entry eldest) 
返回true如果此映射移除其最旧的条目.

例子:

下面的程序说明了几个由这个集合所支持的方法:

import java.util.*;

public class LinkedHashMapDemo {

   public static void main(String args[]) {
      // Create a hash map
      LinkedHashMap lhm = new LinkedHashMap();
      // Put elements to the map
      lhm.put("Zara", new Double(3434.34));
      lhm.put("Mahnaz", new Double(123.22));
      lhm.put("Ayan", new Double(1378.00));
      lhm.put("Daisy", new Double(99.22));
      lhm.put("Qadir", new Double(-19.08));
      
      // Get a set of the entries
      Set set = lhm.entrySet();
      // Get an iterator
      Iterator i = set.iterator();
      // Display elements
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();
      // Deposit 1000 into Zara's account
      double balance = ((Double)lhm.get("Zara")).doubleValue();
      lhm.put("Zara", new Double(balance + 1000));
      System.out.println("Zara's new balance: " +
      lhm.get("Zara"));
   }
}

这将产生以下结果:

Zara: 3434.34
Mahnaz: 123.22
Ayan: 1378.0
Daisy: 99.22
Qadir: -19.08

Zara's new balance: 4434.34