Array List 可以转换成 HashMap,但是 HashMap 不维护 ArrayList 的顺序。为了维护顺序,我们可以使用 LinkedHashMap,它是 HashMap 的实现。
本质上,有两种不同的方法可以将 ArrayList 转换为 Hashmap-
- 使用 ArrayList 迭代
- 将 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
相关用法
- Java HashMap转ArrayList用法及代码示例
- Java HashMap转LinkedList用法及代码示例
- Java HashSet转ArrayList用法及代码示例
- Java ArrayList转LinkedList用法及代码示例
- Java ArrayList转LinkedHashMap用法及代码示例
- Java Vector转ArrayList用法及代码示例
- Java ArrayList转Vector用法及代码示例
- Java ArrayList转LinkedHashSet用法及代码示例
- Java TreeMap转ArrayList用法及代码示例
- Java String转ArrayList用法及代码示例
注:本文由纯净天空筛选整理自geetansh044大神的英文原创作品 Convert ArrayList to HashMap in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。