使用Java 8中的方法引用将ArrayList转换为HashMap
数据结构是每个编写代码的人的福音。但是,将一个数据结构转换为另一个数据结构是否有任何方法?好吧,似乎是有的!在本文中,我们将学习如何使用Java 8中的方法引用将ArrayList转换为HashMap。
示例:
ArrayList中的元素为:[笔,铅笔,书,耳机]
HashMap中的元素为:{笔=3,铅笔=6,书=4,耳机=10}
在Java 8中,有两种实现目标的方法:
- 通过Lambda表达式将ArrayList转换为HashMap。
- 通过方法引用将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}
极客教程