如何在Java 8之前将ArrayList转换为HashMap

如何在Java 8之前将ArrayList转换为HashMap

ArrayList是一个可调整大小的数组。它隶属于java包java.util。它在Java中提供了动态数组。ArrayList在需要大量改变数组的程序中很有用,但这些数组也比标准数组慢。ArrayList中的元素可以在需要时被添加和删除。

HashMap是一种以 “键/值 “对存储项目的数据结构。它们可以通过另一种类型的索引(如字符串)进行访问。HashMap被表示为HashMap<Key, Value> 。这与HashTable非常相似,但它允许使用空值和空键。它并不按照键和值存储到HashMap中的相同顺序来返回它们。它也隶属于java包java.util.HashMap。

现在,为了将ArrayList转换为HashMap,我们也考虑了这两个用例,以说明覆盖的概念

1.最初的ArrayList没有重复的内容
2.最初的ArrayList有重复的值。

案例1: 在Java 8之前,将ArrayList转换为HashMap的最理想方式是通过使用增强型for-loop在给定的ArrayList上进行迭代,并将String作为键和其长度作为值插入HashMap中。在这里,ArrayList的每个元素都可以被转换为键值对并存储在HashMap中。这个方法也可以处理ArrayList中的任何重复,因为插入的条目在键重复的情况下会覆盖值。在这种情况下,不会抛出错误或异常。

例子: 最初的ArrayList没有重复的内容

// Program to convert ArrayList
// to Hashmap before Java 8
 
// Name of ArrayList chosen randomly: vehicleList
 
// Importing java generic libraries
import java.util.*;
 
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating ArrayList
        ArrayList<String> vehicleList
            = new ArrayList<>(Arrays.asList(
                "Car", "Bike", "Bus", "Cycle", "Rickshaw"));
 
        // Display message to enter ArrayList
        System.out.println("ArrayList: \n");
 
        // Printing ArrayList
        for (String vehicle : vehicleList) {
            System.out.println(vehicle);
        }
 
        // Display message to separate above
        // list from hashmap for readability
        System.out.println("\nHashMap: \n");
 
        // Creating Hashmap
        HashMap<String, Integer> vehicleMap
            = convertArrayListToHashMap(vehicleList);
 
        for (Map.Entry<String, Integer> entry :
             vehicleMap.entrySet()) {
            System.out.println(entry.getKey() + " : "
                               + entry.getValue());
        }
    }
 
    // Converting ArrayList to HashMap
    private static HashMap<String, Integer>
    convertArrayListToHashMap(ArrayList<String> arrayList)
    {
        HashMap<String, Integer> hashMap = new HashMap<>();
 
        // For-each loop for iteration
        for (String str : arrayList) {
            hashMap.put(str, str.length());
        }
 
        // Returning converted Hashmap
        return hashMap;
    }
}

输出

ArrayList: 

Car
Bike
Bus
Cycle
Rickshaw

HashMap: 

Bus : 3
Rickshaw : 8
Car : 3
Bike : 4
Cycle : 5

案例2: 最初的ArrayList有重复的值,由于HashMap中的键重复,它覆盖了该值。

// Program to convert ArrayList
// to Hashmap before Java 8
 
// Importing java generic libraries
import java.util.*;
 
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating ArrayList
        ArrayList<String> vehicleList = new ArrayList<>(
 
            // Presence of Duplicate Elements
            Arrays.asList("Car", "Bike", "Bus", "Cycle",
                          "Rickshaw", "Car", "Bike"));
 
        System.out.println("ArrayList: \n");
 
        // Printing ArrayList
        for (String vehicle : vehicleList) {
            System.out.println(vehicle);
        }
 
        // Display message just after ArrayList is printed
        // for better readability
        System.out.println("\nHashMap: \n");
 
        // Creating HashMap
        HashMap<String, Integer> vehicleMap
            = convertArrayListToHashMap(vehicleList);
 
        // Printing above HashMap
        for (Map.Entry<String, Integer> entry :
             vehicleMap.entrySet()) {
            System.out.println(entry.getKey() + " : "
                               + entry.getValue());
        }
    }
 
    // Converting ArrayList to HashMap
    private static HashMap<String, Integer>
    convertArrayListToHashMap(ArrayList<String> arrayList)
    {
        HashMap<String, Integer> hashMap = new HashMap<>();
 
        // For-each loop for iteration
        for (String str : arrayList) {
            hashMap.put(str, str.length());
        }
 
        // Returning converted HashMap
        return hashMap;
    }
}

输出

ArrayList: 

Car
Bike
Bus
Cycle
Rickshaw
Car
Bike

HashMap: 

Bus : 3
Rickshaw : 8
Car : 3
Bike : 4
Cycle : 5

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程