Java 8 Stream API: 对象集合去重并创建 Map 集合
可以使用Java 8的Stream API来实现这个功能。首先,我们需要创建一个包含项目ID和项目名称的对象类。\n\njava\npublic class Project {\n private int projectId;\n private String projectName;\n \n public Project(int projectId, String projectName) {\n this.projectId = projectId;\n this.projectName = projectName;\n }\n \n public int getProjectId() {\n return projectId;\n }\n \n public String getProjectName() {\n return projectName;\n }\n}\n\n\n然后,我们可以创建一个包含多个Project对象的集合,并使用Stream API进行去重和重新组合。\n\njava\nimport java.util.List;\nimport java.util.Map;\nimport java.util.stream.Collectors;\n\npublic class Main {\n public static void main(String[] args) {\n List<Project> projects = List.of(\n new Project(1, "Project A"),\n new Project(2, "Project B"),\n new Project(1, "Project C"),\n new Project(3, "Project D")\n );\n \n Map<Integer, String> projectMap = projects.stream()\n .collect(Collectors.toMap(Project::getProjectId, Project::getProjectName, (oldValue, newValue) -> oldValue));\n \n projectMap.forEach((projectId, projectName) -> System.out.println(projectId + ": " + projectName));\n }\n}\n\n\n输出结果为:\n\n\n1: Project A\n2: Project B\n3: Project D\n\n\n在上述代码中,我们使用Collectors.toMap()方法将项目ID作为键,项目名称作为值来创建一个Map集合。对于相同的项目ID,我们使用oldValue来保留旧值,以实现去重的效果。最后,我们可以使用forEach()方法遍历Map集合并打印出项目ID和项目名称。
原文地址: https://www.cveoy.top/t/topic/qerj 著作权归作者所有。请勿转载和采集!