Java中将 ArrayList 转换为 HashMap
ArrayList可以转换成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 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