Java教程

Java LinkedHashMap</h1>

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 : 这是此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
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4