在 Java 8 中使用方法引用将数组列表转换为 HashMap】
原文:https://www . geesforgeks . org/converting-ArrayList-to-hashmap-using-method-reference-in-Java-8/
数据结构对每个编写代码的人来说都是一个福音。但是有什么方法可以将一个数据结构转换成另一个数据结构呢?嗯,好像有!在本文中,我们将学习如何使用 Java 8 中的方法引用将数组列表转换为哈希表。
示例:
Elements in ArrayList are : [Pen, Pencil, Book, Headphones]
Elements in HashMap are :{Pen=3, Pencil=6, Book=4, Headphones=10}
在 Java 8 中,有两种方法可以实现我们的目标:
- 使用λ表达式将数组列表转换为哈希表。
- 使用方法引用将数组列表转换为哈希表。
方法:使用方法参考
与 Lambda 表达式相比,使用方法引用使代码看起来更加清晰。
Lambda 只不过是代码,如果已经有一个做同样事情的方法,那么可以传递方法引用,而不是 Lambda 表达式。
- Function.identity() 指的是将自身作为 HashMap 的键的元素。
- String::length 允许将元素的长度存储为其相关值。
Java 语言(一种计算机语言,尤用于创建网站)
// Java program for Converting ArrayList to
// HashMap using method reference in Java 8
import java.io.*;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
class GFG {
public static void main(String[] args)
{
// creating arraylist to add elements
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Banana");
fruits.add("Guava");
fruits.add("Pineapple");
fruits.add("Apple");
// printing contents of arraylist before conversion
System.out.println("Elements in ArrayList are : "
+ fruits);
// creating new hashmap and using method reference
// with necessary classes for the conversion
HashMap<String, Integer> res = fruits.stream().collect(Collectors.toMap(
Function.identity(), String::length,
(e1, e2) -> e1, HashMap::new));
// printing the elements of the hashmap
System.out.println("Elements in HashMap are : "
+ res);
}
}
Output
Elements in ArrayList are : [Banana, Guava, Pineapple, Apple]
Elements in HashMap are : {Guava=5, Apple=5, Pineapple=9, Banana=6}
版权属于:月萌API www.moonapi.com,转载请注明出处