Java LinkedHashMap</h1>
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 : 这是此Map维护的键的类型。
V : 这是映射值的类型。
Java LinkedHashMap类的构造方法
构造函数 |
说明 |
LinkedHashMap() |
它用于构造默认的LinkedHashMap。 |
LinkedHashMap(int capacity) |
用于初始化具有给定容量的LinkedHashMap。 |
LinkedHashMap(int capacity, float loadFactor) |
用于初始化容量和负载因子。 |
LinkedHashMap(int capacity, float loadFactor, boolean accessOrder) |
它用于以指定的订购方式初始化容量和负载系数。 |
LinkedHashMap(Map
m) |
它用于使用给定Map类m中的元素初始化LinkedHashMap。 |
Java LinkedHashMap类的方法
方法 |
说明 |
V get(Object key) |
它返回指定键所映射的值。 |
void clear() |
它从Map上删除所有键-值对。 |
boolean containsValue(Object value) |
如果Map将一个或多个键映射到指定值,则返回true。 |
Set <Map.Entry <K,V>> entrySet() |
它返回Map中包含的映射的Set视图。 |
void forEach(BiConsumer <?super K,?super V> action) |
它将对映射中的每个条目执行给定的操作,直到处理完所有条目或该操作引发异常为止。 |
V getOrDefault(Object key, V defaultValue) |
它返回指定键所映射的值,如果此映射不包含键的映射关系,则返回defaultValue。 |
Set
<K>
keySet()
|
它返回Map中包含的键的Set视图 |
protected boolean removeEldestEntry(Map.Entry
<k,v>
eldest)
|
删除最旧的条目后返回true。 |
void replaceAll(BiFunction
function) |
它将所有条目的值替换为对该条目调用给定函数的结果,直到处理完所有条目或该函数引发异常为止。 |
Collection
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");
System.out.println("Keys: "+map.keySet());
System.out.println("Values: "+map.values());
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) {
Map<Integer,Book> map=new LinkedHashMap<Integer,Book>();
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);
map.put(2,b2);
map.put(1,b1);
map.put(3,b3);
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