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
评论前必须登录!
注册