亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java LinkedHashMap

Java LinkedHashMap

在本教程中,我们将通过示例了解 Java LinkedHashMap 类及其操作。

LinkedHashMap Java集合框架类提供了Map接口的哈希表和链表实现。

LinkedHashMap 接口扩展了 HashMap 类以将其条目存储在哈希表中。它在内部维护所有条目之间的双向链表以对其条目进行排序。


创建 LinkedHashMap

为了创建链接的哈希图,我们必须导入 java.util.LinkedHashMap 先打包。导入包后,我们可以通过以下方式在 Java 中创建链接的哈希图。

// LinkedHashMap with initial capacity 8 and load factor 0.6
LinkedHashMap<Key, Value> numbers = new LinkedHashMap<>(8, 0.6f);

在上面的代码中,我们创建了一个名为 numbers 的链接 hashmap .

在这里,

注意部分 new LinkedHashMap<>(8, 0.6) .这里,第一个参数是容量 第二个参数是 loadFactor .

默认容量和负载率

可以在不定义其容量和负载因子的情况下创建链接的哈希图。例如,

//LinkedHashMap with default capacity and load factor
LinkedHashMap<Key, Value> numbers1 = new LinkedHashMap<>();

默认情况下,

注意 :LinkedHashMap 类还允许我们定义其条目的顺序。比如

// LinkedHashMap with specified order
LinkedHashMap<Key, Value> numbers2 = new LinkedHashMap<>(capacity, loadFactor, accessOrder);

这里,accessOrder 是一个布尔值。它的默认值为 false .在这种情况下,链接的 hashmap 中的条目根据它们的插入顺序进行排序。

但是,如果 true 作为 accessOrder 传递 , 链接的 hashmap 中的条目将按照从最近最少访问到最近访问的顺序排列。


从其他地图创建 LinkedHashMap

以下是我们如何创建包含其他地图的所有元素的链接哈希图。

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating a LinkedHashMap of even numbers
        LinkedHashMap<String, Integer> evenNumbers = new LinkedHashMap<>();
        evenNumbers.put("Two", 2);
        evenNumbers.put("Four", 4);
        System.out.println("LinkedHashMap1: " + evenNumbers);

        // Creating a LinkedHashMap from other LinkedHashMap
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>(evenNumbers);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap2: " + numbers);
    }
}

输出

LinkedHashMap1: {Two=2, Four=4}
LinkedHashMap2: {Two=2, Four=4, Three=3}

LinkedHashMap的方法

LinkedHashMap 类提供了允许我们在地图上执行各种操作的方法。


向 LinkedHashMap 插入元素

例如,


import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating LinkedHashMap of even numbers
        LinkedHashMap<String, Integer> evenNumbers = new LinkedHashMap<>();

        // Using put()
        evenNumbers.put("Two", 2);
        evenNumbers.put("Four", 4);
        System.out.println("Original LinkedHashMap: " + evenNumbers);

        // Using putIfAbsent()
        evenNumbers.putIfAbsent("Six", 6);
        System.out.println("Updated LinkedHashMap(): " + evenNumbers);

        //Creating LinkedHashMap of numbers
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("One", 1);

        // Using putAll()
        numbers.putAll(evenNumbers);
        System.out.println("New LinkedHashMap: " + numbers);
    }
}

输出

Original LinkedHashMap: {Two=2, Four=4}
Updated LinkedHashMap: {Two=2, Four=4, Six=6}
New LinkedHashMap: {One=1, Two=2, Four=4, Six=6}

访问 LinkedHashMap 元素

1。使用 entrySet()、keySet() 和 values()

例如,

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();

        numbers.put("One", 1);
        numbers.put("Two", 2);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap: " + numbers);

        // Using entrySet()
        System.out.println("Key/Value mappings: " + numbers.entrySet());

        // Using keySet()
        System.out.println("Keys: " + numbers.keySet());

        // Using values()
        System.out.println("Values: " + numbers.values());
    }
}

输出

LinkedHashMap: {One=1, Two=2, Three=3}
Key/Value mappings: [One=1, Two=2, Three=3]
Keys: [One, Two, Three]
Values: [1, 2, 3]

2。使用 get() 和 getOrDefault()

例如,

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {

        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("One", 1);
        numbers.put("Two", 2);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap: " + numbers);

        // Using get()
        int value1 = numbers.get("Three");
        System.out.println("Returned Number: " + value1);

        // Using getOrDefault()
        int value2 = numbers.getOrDefault("Five", 5);
        System.out.println("Returned Number: " + value2);
    }
}

输出

LinkedHashMap: {One=1, Two=2, Three=3}
Returned Number: 3
Returned Number: 5

已移除 LinkedHashMap 元素

例如,

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {

        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("One", 1);
        numbers.put("Two", 2);
        numbers.put("Three", 3);
        System.out.println("LinkedHashMap: " + numbers);

        // remove method with single parameter
        int value = numbers.remove("Two");
        System.out.println("Removed value: " + value);

        // remove method with two parameters
        boolean result = numbers.remove("Three", 3);
        System.out.println("Is the entry Three removed? " + result);

        System.out.println("Updated LinkedHashMap: " + numbers);
    }
}

输出

LinkedHashMap: {One=1, Two=2, Three=3}
Removed value: 2
Is the entry {Three=3} removed? True
Updated LinkedHashMap: {One=1}

LinkedHashMap的其他方法

方法 说明
clear() 从地图中删除所有条目
containsKey() 检查映射是否包含指定的键并返回一个布尔值
containsValue() 检查地图是否包含指定的值并返回一个布尔值
size() 返回地图的大小
isEmpty() 检查地图是否为空并返回一个布尔值

LinkedHashMap 对比。哈希映射

LinkedHashMap 和 HashMap 实现 Map 界面。但是,它们之间存在一些差异。


java

  1. Java 运算符
  2. Java 评论
  3. Java if...else 语句
  4. Java for-each 循环
  5. Java break 语句
  6. Java 字符串
  7. Java 接口
  8. Java 匿名类
  9. Java try-with-resources
  10. Java 注释
  11. Java 断言
  12. Java 向量