📜  如何将 LinkedHashMap 转换为Java中的列表?

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

如何将 LinkedHashMap 转换为Java中的列表?

LinkedHashMap是Java中的预定义类,类似于HashMap,与HashMap不同,包含key及其各自的值,LinkedHashMap中的插入顺序是保留的。

我们将 LinkedHashMap 转换为 ArrayList。 Map 将数据存储在 Key 和 Value 对中,同时将 LinkedHashMAp 转换为 ArrayList 我们将 Map 的键存储在单独的 List 中,类似地将值存储在另一个 List 中,查看示例和算法以更好地理解。

例子 :

Input : { 1 = 3, 4 = 2, 6 = 5, 2 = 1 }

output : Key   -> [ 1, 4, 6, 2 ]
         value -> [ 3, 2, 5, 1]
         
Input : { 2 = 10, 4 = 4, 6 = 23, 8 = 12 }

output : Key   -> [ 2, 4, 6, 6 ]
         value -> [ 10, 4, 23, 12]

算法 :

  • 在 LinkedHashMap 中使用 For/while 循环进行迭代
  • 取两个不同的 ArrayList 用于键及其受尊重的值。
  • 现在遍历 LinkedhashMap 中的 for-Each 循环,并使用它们定义的 ArrayList 添加键和值

伪代码:

for (Map.Entry it : l.entrySet()) {
            l1.add(it.getKey());
            l2.add(it.getValue());
}

Here, l is LinkedHashMap
      l1 is Arraylist for keys
      l2 is Arraylist for Values

例子:

Java
// Java program to convert LinkedHashMap
// to List
  
import java.util.*;
import java.io.*;
  
class GFG {
    
    public static void main(String[] args)
    {
        LinkedHashMap l = new LinkedHashMap<>();
        
        l.put(2, 5);
        l.put(4, 6);
        l.put(5, 16);
        l.put(6, 63);
        l.put(3, 18);
        
          // Taking two ArrayList
        ArrayList l1 = new ArrayList<>();
  
        ArrayList l2 = new ArrayList<>();
  
        for (Map.Entry it : l.entrySet()) {
            l1.add(it.getKey());
            l2.add(it.getValue());
        }
  
        System.out.print("Key -> ");
        System.out.println(l1);
        System.out.print("Value -> ");
        System.out.println(l2);
    }
}

输出
Key -> [2, 4, 5, 6, 3]
Value -> [5, 6, 16, 63, 18]

时间复杂度: O(n)