Java 8 使用方法引用将ArrayList转换为HashMap

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}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程