Java List 转 Map:使用 Stream API 实现
要将 Java 中的 List 转换为 Map,可以使用 Java 8 的 Stream API 来实现。下面是一个示例代码:\n\njava\nimport java.util.List;\nimport java.util.Map;\nimport java.util.stream.Collectors;\n\npublic class ListToMapExample {\n public static void main(String[] args) {\n List<Person> personList = List.of(\n new Person("John", 25),\n new Person("Jane", 30),\n new Person("David", 35)\n );\n\n Map<String, Integer> personMap = personList.stream()\n .collect(Collectors.toMap(Person::getName, Person::getAge));\n\n System.out.println(personMap);\n }\n\n static class Person {\n private String name;\n private int age;\n\n public Person(String name, int age) {\n this.name = name;\n this.age = age;\n }\n\n public String getName() {\n return name;\n }\n\n public int getAge() {\n return age;\n }\n }\n}\n\n\n在上面的示例中,我们首先创建了一个 Person 类,它有一个名称和年龄属性。然后,我们创建了一个 Person 对象的 List。接下来,我们使用 Stream API 的 toMap() 方法将 List 转换为 Map。在 toMap() 方法中,我们使用 Person::getName 作为键的映射函数,使用 Person::getAge 作为值的映射函数。最后,我们打印输出了转换后的 Map。\n\n运行上述代码,输出结果为:\n\n\n{John=25, Jane=30, David=35}\n\n\n注意:如果 List 中存在重复的键,那么在转换为 Map 时会抛出 IllegalStateException 异常。可以使用 toMap() 方法的重载版本,并传递一个合适的合并函数来解决重复键的问题。
原文地址: https://www.cveoy.top/t/topic/pwMI 著作权归作者所有。请勿转载和采集!