📌  相关文章
📜  Java中将 ArrayList 转换为 HashMap

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

Java中将 ArrayList 转换为 HashMap

ArrayList可以转换成HashMap,但是HashMap不维护ArrayList的顺序。为了维护顺序,我们可以使用 LinkedHashMap,它是 HashMap 的实现。

基本上有两种不同的方法可以将 ArrayList 转换为 Hashmap-

  1. 使用 ArrayList 迭代
  2. 将 ArrayList 迭代与 LinkedHashMap 一起使用

使用 ArrayList 迭代:

在这里,我们只需要遍历 ArrayList 的每个元素,就可以将元素转换为键值对并存储在 HashMap 中。

Java
// Java program to convert ArrayList
// to HashMap
  
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
  
public class ArrayListExample {
    public static void main(String[] args)
    {
         
        // ArrayList of string
        ArrayList languageList
           = new ArrayList<>(Arrays.asList("Java", "C++", "Python", 
                                           "PHP", "NodeJS"));
  
        System.out.println(
            "-------------ArrayList---------------");
       
        
        // printing the ArrayList
        for (String language : languageList)
        {
           System.out.println(language);
        }
  
        System.out.println(
            "--------------HashMap----------------");
         
        // convertArrayListToHashMap() method directly 
        // converts ArrayList to Hashmap
        HashMap languageMap = convertArrayListToHashMap(languageList);
    
        // printing the HashMap
        for (Map.Entry entry : languageMap.entrySet()) {
  
            System.out.println(entry.getKey() + " : "
                               + entry.getValue());
        }
    }
  
    private static HashMap
    convertArrayListToHashMap(ArrayList arrayList)
    {
  
        HashMap hashMap = new HashMap<>();
  
        for (String str : arrayList) {
  
            hashMap.put(str, str.length());
        }
  
        return hashMap;
    }
}


Java
// Java program to convert ArrayList
// to HashMap
  
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.*;
  
public class ArrayListExample {
    public static void main(String[] args)
    {
        // ArrayList of string
        ArrayList languageList
            = new ArrayList<>(Arrays.asList(
                "Java", "C++", "Python", "PHP", "NodeJS"));
  
        System.out.println(
            "-------------ArrayList---------------");
          
        // printing the ArrayList
        for (String language : languageList) {
  
            System.out.println(language);
        }
  
        System.out.println(
            "--------------HashMap----------------");
         
        // convertArrayListToHashMap() method directly 
        // converts ArrayList to HashMap
        HashMap languageMap
            = convertArrayListToHashMap(languageList);
  
        
        // printing the HashMap
        for (Map.Entry entry :
             languageMap.entrySet()) {
  
            System.out.println(entry.getKey() + " : "
                               + entry.getValue());
        }
    }
  
    private static HashMap
                       convertArrayListToHashMap(ArrayList arrayList)
    {
  
        LinkedHashMap linkedHashMap
                                  = new LinkedHashMap<>();
  
        for (String str : arrayList) {
  
            linkedHashMap.put(str, str.length());
        }
  
        return linkedHashMap;
    }
}


输出
-------------ArrayList---------------
Java
C++
Python
PHP
NodeJS
--------------HashMap----------------
Java : 4
C++ : 3
PHP : 3
NodeJS : 6
Python : 6

将 ArrayList 迭代与 LinkedHashMap 一起使用:

  • 在这里,Array List 被转换为 HashMap 但 HashMap 不维护 ArrayList 的顺序。
  • 为了维护顺序,我们使用LinkedHashMap,它是HashMap的一个实现,帮助我们维护元素的顺序,我们可以很容易地将Arraylist转换为Hashmap。

Java

// Java program to convert ArrayList
// to HashMap
  
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.*;
  
public class ArrayListExample {
    public static void main(String[] args)
    {
        // ArrayList of string
        ArrayList languageList
            = new ArrayList<>(Arrays.asList(
                "Java", "C++", "Python", "PHP", "NodeJS"));
  
        System.out.println(
            "-------------ArrayList---------------");
          
        // printing the ArrayList
        for (String language : languageList) {
  
            System.out.println(language);
        }
  
        System.out.println(
            "--------------HashMap----------------");
         
        // convertArrayListToHashMap() method directly 
        // converts ArrayList to HashMap
        HashMap languageMap
            = convertArrayListToHashMap(languageList);
  
        
        // printing the HashMap
        for (Map.Entry entry :
             languageMap.entrySet()) {
  
            System.out.println(entry.getKey() + " : "
                               + entry.getValue());
        }
    }
  
    private static HashMap
                       convertArrayListToHashMap(ArrayList arrayList)
    {
  
        LinkedHashMap linkedHashMap
                                  = new LinkedHashMap<>();
  
        for (String str : arrayList) {
  
            linkedHashMap.put(str, str.length());
        }
  
        return linkedHashMap;
    }
}
输出
-------------ArrayList---------------
Java
C++
Python
PHP
NodeJS
--------------HashMap----------------
Java : 4
C++ : 3
Python : 6
PHP : 3
NodeJS : 6