当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java ArrayList转HashMap用法及代码示例


Array List 可以转换成 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<String> 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<String, Integer> languageMap = convertArrayListToHashMap(languageList);
    
        // printing the HashMap
        for (Map.Entry<String, Integer> entry:languageMap.entrySet()) {
  
            System.out.println(entry.getKey() + ":"
                               + entry.getValue());
        }
    }
  
    private static HashMap<String, Integer>
    convertArrayListToHashMap(ArrayList<String> arrayList)
    {
  
        HashMap<String, Integer> hashMap = new HashMap<>();
  
        for (String str:arrayList) {
  
            hashMap.put(str, str.length());
        }
  
        return hashMap;
    }
}
输出
-------------ArrayList---------------
Java
C++
Python
PHP
NodeJS
--------------HashMap----------------
Java:4
C++:3
PHP:3
NodeJS:6
Python:6

使用带有 LinkedHashMap 的 ArrayList 迭代:

  • 这里将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<String> 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<String, Integer> languageMap
            = convertArrayListToHashMap(languageList);
  
        
        // printing the HashMap
        for (Map.Entry<String, Integer> entry:
             languageMap.entrySet()) {
  
            System.out.println(entry.getKey() + ":"
                               + entry.getValue());
        }
    }
  
    private static HashMap<String, Integer>
                       convertArrayListToHashMap(ArrayList<String> arrayList)
    {
  
        LinkedHashMap<String, Integer> 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




相关用法


注:本文由纯净天空筛选整理自geetansh044大神的英文原创作品 Convert ArrayList to HashMap in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。