
Java
使用Collectors.toMap() keyMapper可以更简洁地生成一个Map对象。这个方法可以将流中的元素按照指定的键生成一个Map,并且还可以指定值的生成方式。下面将介绍 的一篇文章,并附带案例代码。
案例代码:首先,我们定义一个Person类,它有两个属性:name和age。Javapublic class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; }}接下来,我们创建一个Person列表,并使用Collectors.toMap()方法将列表中的元素按照name作为键生成一个Map对象。Javaimport Java.util.Arrays;import Java.util.List;import Java.util.Map;import Java.util.stream.Collectors;public class MAIn { public static void mAIn(String[] args) { List<Person> personList = Arrays.asList( new Person("Alice", 20), new Person("Bob", 25), new Person("Charlie", 30) ); Map<String, Person> personMap = personList.stream() .collect(Collectors.toMap(Person::getName, person -> person)); System.out.println(personMap); }}输出结果为:{Alice=Person@1b6d3586, Bob=Person@4554617c, Charlie=Person@74a14482}可以看到,通过Collectors.toMap()方法,我们成功地将Person列表中的元素按照name作为键生成了一个Map对象。使用Collectors.toMap() keyMapper——更简洁的表达在Java 8中,引入了一种更简洁的方式来生成Map对象,即使用Collectors.toMap()方法的keyMapper参数。它允许我们指定一个函数来生成Map的键。JavaMap<String, Person> personMap = personList.stream() .collect(Collectors.toMap(Person::getName, person -> person));在上面的例子中,我们使用Person对象的getName方法作为键生成Map。这个方法会返回一个String类型的值作为键。同时,我们还可以指定值的生成方式。在这个例子中,我们使用lambda表达式person -> person来生成Map的值,即将Person对象本身作为值。通过使用Collectors.toMap()方法的keyMapper参数,我们可以更简洁地生成一个Map对象。这种方式适用于需要将流中的元素按照指定的键生成Map的场景。在案例代码中,我们成功地将Person列表中的元素按照name作为键生成了一个Map对象。这种方式不仅简洁,而且更易读,提高了代码的可读性和可维护性。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号