个性化阅读
专注于IT技术分析

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); 
    }  
}  
}

输出:

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
赞(0)
未经允许不得转载:srcmini » Java LinkedHashMap类

评论 抢沙发

评论前必须登录!