【发布时间】:2021-12-01 17:44:13
【问题描述】:
我有一个保存用户角色和权限的 excel 文件,如下所示(为简洁起见,省略了一些字段):
User Role | Permission Uuid
----------|----------------
0 | a465433f...
0 | 43db5a33...
1 | 610e9040...
0 | 94e85bef...
1 | 34e85f32...
我正在逐行读取一个excel文件,需要通过如下所示的请求来创建导入数据:
public class PermissionRequest {
private UserRole userRole;
private List<UUID> permissionUuidList;
}
我认为我需要按用户角色映射每个权限 Uuid,因此我尝试使用Map<Integer, List<UUID>>,如下所示:
Map<Integer, List<UUID>> userRolePermissionMap = new HashMap<>();
userRolePermissionMap.put(Integer.parseInt(cellList.get(USER_ROLE)),
Collections.singletonList(UUID.fromString(cellList.get(PERMISSON_UUID))));
但我认为它不正确。那么,由于用户角色未在 excel 文件中排序,我是否需要按用户角色进行排序或分组,然后循环发送PermissionRequest 到存储库以进行创建操作?或者我应该为此使用TreeMap 吗?如果可以,我该如何使用?
【问题讨论】:
-
HashMap未排序。不清楚你在问什么。 -
不清楚您的要求 - 您不需要对输入进行排序以创建具有正确映射的哈希图,即使您要添加
0然后1然后0然后1和以此类推,一切都会进入正确的存储桶。但是,如果您需要对列表中的 uuid 进行排序,那么您需要自己提供排序 -
@m.antkowicz 我也尝试过this 方法,但它不按用户角色排序。有什么想法吗?
标签: java list collections hashmap treemap