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

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

数据结构是每个编写代码的人的福音。但是,将一个数据结构转换为另一个数据结构是否有任何方法?好吧,似乎是有的!在本文中,我们将学习如何使用Java 8中的方法引用将ArrayList转换为HashMap。

示例:

ArrayList中的元素为:[笔,铅笔,书,耳机]
HashMap中的元素为:{笔=3,铅笔=6,书=4,耳机=10}

Java 8中,有两种实现目标的方法:

  1. 通过Lambda表达式将ArrayList转换为HashMap。
  2. 通过方法引用将ArrayList转换为HashMap。

方法:使用方法引用

使用方法引用相对于Lambda表达式可以使代码看起来更清晰。

Lambda只是代码,如果您已经有一个执行相同任务的方法,则可以传递方法引用,而不是Lambda表达式。

  • Function.identity() 指的是元素自身作为HashMap的键。
  • String::length 允许将元素的长度存储为其关联值。
// 使用Java 8中的方法引用将ArrayList转换为HashMap的Java程序
  
import java.io.*;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
  
class GFG {
    public static void main(String[] args)
    {
  
        // 创建ArrayList以添加元素
        ArrayList<String> fruits = new ArrayList<>();
        fruits.add("香蕉");
        fruits.add("芭乐");
        fruits.add("菠萝");
        fruits.add("苹果");
  
        // 转换之前打印ArrayList的内容
        System.out.println("ArrayList中的元素为 : " + fruits);
  
        // 创建新的HashMap并使用方法引用
        // 进行转换所需的类
        HashMap<String, Integer> res = fruits.stream().collect(Collectors.toMap(
                Function.identity(), String::length,
                (e1, e2) -> e1, HashMap::new));
  
        // 打印hashmap的元素
        System.out.println("HashMap中的元素为 : " + res);
    }
}

输出

ArrayList中的元素为 : [香蕉,芭乐,菠萝,苹果]
HashMap中的元素为 : {芭乐=5,苹果=5,菠萝=9,香蕉=6}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程