📜  如何在Java中将 LinkedHashMap 转换为两个数组?

📅  最后修改于: 2022-05-13 01:54:20.040000             🧑  作者: Mango

如何在Java中将 LinkedHashMap 转换为两个数组?

LinkedHashMap 和 HashMap 一样是Java中的一个预定义类。 LinkedHashMap 和 HashMap 的唯一区别是 LinkedHashMap 保留插入顺序,而 HashMap 不保留插入顺序。 LinkedHashMap 在Java中可以转换成两个数组,其中一个数组用于LinkedHashMap中的键,另一个数组用于值。

例子 :

Input : LinkedHashMap = [2=6, 3=4, 5=7, 4=6]
Output:
Array of keys = [2, 3, 5, 4]
Array of Values = [6, 4, 7, 6]

Input : LinkedHashMap = [1=a, 2=b, 3=c, 4=d]
Output:
Array of keys = [1, 2, 3, 4]
Array of Values = [a, b, c, d]

算法 :

  1. 使用键和相应的值在 LinkedHashMap 中获取输入。
  2. 创建一个数组,其数据类型与 LinkedHashMap 中的键的数据类型相同。
  3. 创建另一个数组,其数据类型与 LinkedHashMap 中的值相同。
  4. 开始 LinkedHashMap 遍历。
  5. 复制两个数组中的每个键和值。
  6. 遍历完成后,打印两个数组。

下面是上述方法的实现:

Java
// Java Program to Convert LinkedHashMap to Two Arrays
import java.io.*;
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
        LinkedHashMap lhm
            = new LinkedHashMap<>();
  
        lhm.put(2, 6);
        lhm.put(3, 4);
        lhm.put(5, 7);
        lhm.put(4, 6);
        lhm.put(6, 8);
  
        Integer[] Keys = new Integer[lhm.size()];
  
        Integer[] Values = new Integer[lhm.size()];
        int i = 0;
        
        // Using for-each loop
        for (Map.Entry mapElement : lhm.entrySet()) {
            Integer key = (Integer)mapElement.getKey();
  
            // Add some bonus marks
            // to all the students and print it
            int value = ((int)mapElement.getValue());
  
            Keys[i] = key;
            Values[i] = value;
            i++;
        }
        
        // printing all the element of array contain keys
        System.out.print("Array of Key -> ");
        for (Integer key : Keys) {
            System.out.print(key + ", ");
        }
  
        // iterate value array
        System.out.println();
        System.out.print("Array of Values -> ");
        for (Integer value : Values) {
            System.out.print(value + ", ");
        }
    }
}


输出
Array of Key -> 2, 3, 5, 4, 6, 
Array of Values -> 6, 4, 7, 6, 8, 

时间复杂度: O(n)