Java LinkedHashMap类

Java LinkedHashMap类

文章图片
Java LinkedHashMap类是Map接口的Hashtable和Linked list实现, 具有可预测的迭代顺序。它继承了HashMap类并实现了Map接口。
要记住的要点
  • Java LinkedHashMap包含基于键的值。
  • Java LinkedHashMap包含唯一元素。
  • Java LinkedHashMap可以具有一个null键和多个null值。
  • Java LinkedHashMap不同步。
  • Java LinkedHashMap维护插入顺序。
  • Java HashMap类的初始默认容量为16, 负载因子为0.75。
LinkedHashMap类声明
我们来看一下java.util.LinkedHashMap类的声明。
public class LinkedHashMap< K, V> extends HashMap< K, V> implements Map< K, V>

LinkedHashMap类参数
让我们看一下java.util.LinkedHashMap类的参数。
  • K:这是此地图维护的键的类型。
  • V:这是映射值的类型。
Java LinkedHashMap类的构造方法
建设者 描述
LinkedHashMap() 它用于构造默认的LinkedHashMap。
LinkedHashMap(int capacity) 它用于初始化具有给定容量的LinkedHashMap。
LinkedHashMap(int capacity, float loadFactor) 它用于初始化容量和负载系数。
LinkedHashMap(int capacity, float loadFactor, boolean accessOrder) 它用于以指定的订购模式初始化容量和负载系数。
LinkedHashMap(Map < ?扩展K , ?扩展V> m) 它用于使用给定Map类m中的元素初始化LinkedHashMap。
Java LinkedHashMap类的方法
方法 描述
V get(Object key) 它返回指定键映射到的值。
void clear() 它将所有键值对从映射中删除。
boolean containsValue(Object value) 如果映射将一个或多个键映射到指定值, 则返回true。
Set < Map.Entry < K, V > > entrySet() 它返回映射中包含的映射的Set视图。
void forEach(BiConsumer < ?super K, ?super V> 操作) 它对映射中的每个条目执行给定的操作, 直到所有条目都已处理或该操作引发异常为止。
V getOrDefault(Object key, V defaultValue) 它返回指定键所映射到的值;如果此映射不包含键的映射关系, 则返回defaultValue。
Set< K> keySet() 它返回地图中包含的键的Set视图
受保护的布尔值removeEldestEntry(Map.Entry < K, V> 最老) 删除最旧的条目时返回true。
void replaceAll(BiFunction < ?super K, ?super V, ?extended V> 函数) 它用在该条目上调用给定函数的结果替换每个条目的值, 直到处理完所有条目或该函数引发异常为止。
Collection< V> values() 它返回此映射中包含的值的Collection视图。
Java LinkedHashMap示例
import java.util.*; class LinkedHashMap1{ public static void main(String args[]){ LinkedHashMap< Integer, String> hm=new LinkedHashMap< Integer, String> (); hm.put(100, "Amit"); hm.put(101, "Vijay"); hm.put(102, "Rahul"); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+" "+m.getValue()); } } }

Output:100 Amit 101 Vijay 102 Rahul

Java LinkedHashMap示例:键值对
import java.util.*; class LinkedHashMap2{ public static void main(String args[]){ LinkedHashMap< Integer, String> map = new LinkedHashMap< Integer, String> (); map.put(100, "Amit"); map.put(101, "Vijay"); map.put(102, "Rahul"); //Fetching key System.out.println("Keys: "+map.keySet()); //Fetching value System.out.println("Values: "+map.values()); //Fetching key-value pair System.out.println("Key-Value pairs: "+map.entrySet()); } }

Keys: [100, 101, 102] Values: [Amit, Vijay, Rahul] Key-Value pairs: [100=Amit, 101=Vijay, 102=Rahul]

Java LinkedHashMap示例:remove()
import java.util.*; public class LinkedHashMap3 { public static void main(String args[]) { Map< Integer, String> map=new LinkedHashMap< Integer, String> (); map.put(101, "Amit"); map.put(102, "Vijay"); map.put(103, "Rahul"); System.out.println("Before invoking remove() method: "+map); map.remove(102); System.out.println("After invoking remove() method: "+map); } }

输出:
Before invoking remove() method: {101=Amit, 102=Vijay, 103=Rahul} After invoking remove() method: {101=Amit, 103=Rahul}

Java LinkedHashMap示例:书籍
import java.util.*; class Book { int id; String name, author, publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map< Integer, Book> map=new LinkedHashMap< Integer, Book> (); //Creating Books Book b1=new Book(101, "Let us C", "Yashwant Kanetkar", "BPB", 8); Book b2=new Book(102, "Data Communications & Networking", "Forouzan", "Mc Graw Hill", 4); Book b3=new Book(103, "Operating System", "Galvin", "Wiley", 6); //Adding Books to map map.put(2, b2); map.put(1, b1); map.put(3, b3); //Traversing map for(Map.Entry< Integer, Book> entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+" Details:"); System.out.println(b.id+" "+b.name+" "+b.author+" "+b.publisher+" "+b.quantity); } } }

【Java LinkedHashMap类】输出:
2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 1 Details: 101 Let us C Yashwant Kanetkar BPB 8 3 Details: 103 Operating System Galvin Wiley 6

    推荐阅读