本文将介绍如何使用 Java 8 的流操作将 List<Permission> 转换为 Map<String, List<UserPermissionCategoryItem>>,其中 Permission 对象包含 idnamecategory 属性,UserPermissionCategoryItem 对象包含 idname 属性。

你可以使用 Java 8 的流操作来实现此转换。以下是一个可能的实现:

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<Permission> permissions = List.of(
                new Permission(1, 'Permission 1', 'Category 1'),
                new Permission(2, 'Permission 2', 'Category 1'),
                new Permission(3, 'Permission 3', 'Category 2'),
                new Permission(4, 'Permission 4', 'Category 2')
        );

        Map<String, List<UserPermissionCategoryItem>> resultMap = permissions.stream()
                .collect(Collectors.groupingBy(Permission::getCategory,
                        Collectors.mapping(permission -> new UserPermissionCategoryItem(permission.getId(), permission.getName()),
                                Collectors.toList())));

        System.out.println(resultMap);
    }
}

class Permission {
    private int id;
    private String name;
    private String category;

    public Permission(int id, String name, String category) {
        this.id = id;
        this.name = name;
        this.category = category;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getCategory() {
        return category;
    }
}

class UserPermissionCategoryItem {
    private int id;
    private String name;

    public UserPermissionCategoryItem(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}

在这个示例中,我们首先创建了一个包含 Permission 对象的 List。然后,我们使用流操作将 List<Permission> 转换为 Map<String, List<UserPermissionCategoryItem>>,其中 Permission 对象的 category 属性用作 Map 的键。我们使用 Collectors.groupingBy 方法将 Permission 对象按 category 进行分组,并使用 Collectors.mapping 方法将 Permission 对象转换为 UserPermissionCategoryItem 对象,并将其收集到一个 List 中。最后,我们打印输出了转换后的 Map

这个例子演示了如何使用 Java 8 流操作来简化集合转换操作。通过使用流操作,代码变得更加简洁,易于理解和维护。


原文地址: https://www.cveoy.top/t/topic/o1Hi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录