gpt4 book ai didi

java - 带有map java的通用方法

转载 作者:行者123 更新时间:2023-12-01 09:58:53 28 4
gpt4 key购买 nike

假设我有 Employee 类:

class Employee {
private String name;
private int salary;
// ...
}

我声明并初始化了Employee员工列表。之后我创建了 map ,如下所示:

 Map<String, List<Employee>> m = employee.stream().collect(Collectors.groupingBy(Employee::getName));

问题是,如何创建一个通用方法来在屏幕上打印这张 map ?我被困在这里,因为我不知道如何处理这个列表。

正在考虑这样的事情:

public static <K, V> void showVal(Map<K,  List<V>> m) { 
m.forEach((k, v) -> System.out.println("Key (name): " + k + " Salary: " + v) );
}

上面的代码只是给我提供了对员工的引用,如何使用这个通用方法中的 List 来获取薪水?

最佳答案

您可以使用有界泛型。这样您就可以确保映射的值始终是 Employee 实例的集合:

private static <K, V extends Collection<? extends Employee>> void print(Map<K, V> map) {
map.forEach((name, employees) -> {
int sum = employees.stream()
.mapToInt(Employee::getSalary)
.sum();
System.out.println("Employee: " + name + " with salary " + sum);
});
}

另请参阅 Oracle 官方文档:Generic Methods and Bounded Type Parameters

关于java - 带有map java的通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36966133/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com