Java 8 使用方法引用将ArrayList转换为HashMap
数据结构是每个编码者的福音。但是,有没有办法将一个数据结构转换为另一个呢?好吧,似乎是有的!在这篇文章中,我们将学习如何在Java 8中使用方法引用将ArrayList转换为HashMap。
示例:
Elements in ArrayList are : [Pen, Pencil, Book, Headphones]
Elements in HashMap are :{Pen=3, Pencil=6, Book=4, Headphones=10}
在Java 8中,有两种方法可以实现我们的目标。
1.使用Lambda表达式将ArrayList转换为HashMap。
2.使用方法引用将ArrayList转换为HashMap。
方法:使用方法引用
与Lambda Expression相比,使用Method Reference可以使代码看起来更简洁。
Lambda只不过是代码,如果你已经有一个做同样事情的方法,那么你可以传递方法的引用而不是lambda表达式。
- Function.ident()指的是一个元素使自己成为HashMap的键。
- String::length允许存储元素的长度作为其尊重的值。
// 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);
}
}
输出
Elements in ArrayList are : [Banana, Guava, Pineapple, Apple]
Elements in HashMap are : {Guava=5, Apple=5, Pineapple=9, Banana=6}