Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 和框架

Java 类参考

Java 有用资源

Java - LinkedHashMap 类



此类扩展 HashMap 并维护映射中条目的链接列表,按照插入的顺序排列。这允许按插入顺序迭代映射。也就是说,当迭代 LinkedHashMap 时,元素将按插入的顺序返回。

您还可以创建一个 LinkedHashMap,它按最后访问的顺序返回其元素。

以下是 LinkedHashMap 类支持的构造函数列表。

序号 构造函数和说明
1

LinkedHashMap( )

此构造函数构造一个默认的 LinkedHashMap。

2

LinkedHashMap(Map m)

此构造函数使用给定 Map 类m中的元素初始化 LinkedHashMap。

3

LinkedHashMap(int capacity)

此构造函数使用给定的容量初始化 LinkedHashMap。

4

LinkedHashMap(int capacity, float fillRatio)

此构造函数初始化容量和填充比率。容量和填充比率的含义与 HashMap 相同。

5

LinkedHashMap(int capacity, float fillRatio, boolean Order)

此构造函数允许您指定元素是否按插入顺序或最后访问顺序存储在链接列表中。如果 Order 为 true,则使用访问顺序。如果 Order 为 false,则使用插入顺序。

除了从其父类继承的方法外,LinkedHashMap 还定义了以下方法:

序号 方法和说明
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
java_collections.htm
广告