如何在Java中将包含键和值的两个数组转换为 HashMap?
HashMap 是Java的 Collections 框架的一部分。它以键值对的形式存储数据。 HashMap 的这些值可以通过使用它们各自的键来访问,或者可以使用它们的索引(整数类型)来访问键值对。 HashMap类似于Java中的 Hashtable。 HashTable 和 HashMap 的主要区别在于 Hashtable 是同步的,而 HashMap 不是。此外,一个 HashMap 可以有一个空键和任意数量的空值。 HashMap 中没有保留插入顺序。在 HashMap 中,可以使用HashMap.put()方法添加键和值。我们还可以将包含键和值的两个数组转换为具有各自键和值的 HashMap。
例子:
keys = {1,2,3,4,5}
values = {"Welcome","To","Geeks","For","Geeks"}
HashMap = {1=Welcome, 2=To, 3=Geeks, 4=For, 5=Geeks}
代码
Java
// Java program to convert two arrays containing keys and
// values into a HAshMap
import java.util.*;
import java.io.*;
class GFG {
public static HashMap map(Integer[] keys,
String[] values)
{
// two variables to store the length of the two
// given arrays
int keysSize = keys.length;
int valuesSize = values.length;
// if the size of both arrays is not equal, throw an
// IllegalArgumentsException
if (keysSize != valuesSize) {
throw new IllegalArgumentException(
"The number of keys doesn't match the number of values.");
}
// if the length of the arrays is 0, then return an
// empty HashMap
if (keysSize == 0) {
return new HashMap();
}
// create a new HashMap of the type of keys arrays
// and values array
HashMap map
= new HashMap();
// for every key, value
for (int i = 0; i < keysSize; i++) {
// add them into the HashMap by calling the
// put() method on the key-value pair
map.put(keys[i], values[i]);
}
// return the HashMap
return map;
}
// Driver method
public static void main(String[] args)
{
// create an array for keys
Integer[] keys = { 1, 2, 3, 4, 5 };
// create an array for value
String[] values
= { "Welcome", "To", "Geeks", "For", "Geeks" };
// call the map() method over the keys[] array and
// values[] array
Map m = map(keys, values);
// print the returned map
System.out.println(m);
}
}
输出
{1=Welcome, 2=To, 3=Geeks, 4=For, 5=Geeks}