📜  实现 LinkedHashMap API 的Java程序

📅  最后修改于: 2022-05-13 01:55:09.194000             🧑  作者: Mango

实现 LinkedHashMap API 的Java程序

LinkedHashMap就像HashMap一样,具有维护插入其中的元素顺序的附加功能。 HashMap 提供了快速插入、搜索和删除的优点,但它从未维护 LinkedHashMap 提供的插入轨迹和插入顺序,其中元素可以按插入顺序访问。

为了实现LinkedHashMap API,我们首先创建了一个“LinkedHashMapImplmentation”类,并在这个类中创建了LinkedHashMap的所有方法。

LinkedHashMap API 的实现:

Java
// Java program demonstrate LinkedHashMap API
  
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
  
class LinkedHashMapImplementation {
    private LinkedHashMap map;
  
    // Constructor creates a new LinkedHashMap
    public LinkedHashMapImplementation()
    {
        map = new LinkedHashMap();
    }
  
    // Constructor creates a new empty linkedhash map
    // according to the given map
    public LinkedHashMapImplementation(
        Map map1)
    {
        map = new LinkedHashMap(map1);
    }
  
    // Delete all the key-value pair
    public void clear() { map.clear(); }
  
    // Returns a shallow copy of the LinkedHashMap instance
    public Object clone() { return map.clone(); }
  
    // Returns true if the map contains the specified key
    public boolean containsKey(Object key)
    {
        return map.containsKey(key);
    }
  
    // Returns true if map contains specified value
    public boolean containsValue(Object val)
    {
        return map.containsValue(val);
    }
  
    // Returns a Set view of the mappings
    public Set > entrySet()
    {
        return map.entrySet();
    }
  
    // Returns the value to which the specified key is
    // mapped, returns null if map does not contains given
    // key
    public V get(Object key) { return map.get(key); }
  
    // Returns a Set view of the keys
    public Set keySet() { return map.keySet(); }
  
    // Associates the specified value with the specified key
    // in the map
    public V put(K key, V val) { return map.put(key, val); }
  
    // Copies all of the mappings from the specified map to
    // the map
    public void putAll(Map map1)
    {
        map.putAll(map1);
    }
  
    // Removes the mapping for the key from the
    // LinkedHashMap if present
    public V remove(Object key) { return map.remove(key); }
  
    // Returns the size of the map
    public int size() { return map.size(); }
  
    // Returns a Collection view of the values
    public Collection values() { return map.values(); }
}
  
public class GFG {
    public static void main(String[] arg)
    {
  
        LinkedHashMapImplementation student
            = new LinkedHashMapImplementation<>();
  
        // Add elements to the LinkedHashMap
        student.put("Anuj", 500);
        student.put("Ashok", 460);
        student.put("Aakansha", 495);
  
        // Print the size of the LinkedHashMap
        System.out.println("Size of the LinkedHashMap: "
                           + student.size());
        System.out.println();
  
        System.out.println(
            "The key value pairs of LinkedHashMap:");
  
        // Print the key value pairs of LinkedHashMap
        for (Map.Entry entry :
             student.entrySet()) {
            System.out.println(entry.getKey() + " : "
                               + entry.getValue());
        }
        
        System.out.println();
  
        // Print LinkedHashMap contains key Aakansha or not
        System.out.println(
            "LinkedHashMap contains Aakansha: "
            + student.containsKey("Aakansha"));
        System.out.println();
  
        // Print LinkedHashMap contains value 450 or not
        System.out.println("LinkedHashMap contains 450: "
                           + student.containsValue(450));
        System.out.println();
  
        // Deletes all the entry
        student.clear();
  
        System.out.println("Size of the LinkedHashMap: "
                           + student.size());
    }
}


输出
Size of the LinkedHashMap: 3

The key value pairs of LinkedHashMap:
Anuj : 500
Ashok : 460
Aakansha : 495

LinkedHashMap contains Aakansha: true

LinkedHashMap contains 450: false

Size of the LinkedHashMap: 0