Map<String, List<>>转List<List<>>且均匀分配,List<List<>>大小为20
时间: 2023-10-14 22:10:47 浏览: 163
假设Map<String, List<String>>为例,可以按照以下方式转换成List<List<String>>并进行均匀分配:
```java
Map<String, List<String>> map = new HashMap<>();
// 假设map中已经存储了数据
// 将map转换为List<List<String>>
List<List<String>> resultList = new ArrayList<>();
for (Map.Entry<String, List<String>> entry : map.entrySet()) {
List<String> list = entry.getValue();
resultList.add(list);
}
// 均匀分配,List<List<>>大小为20
int totalSize = resultList.size();
int maxSize = 20;
int groupCount = totalSize % maxSize == 0 ? totalSize / maxSize : totalSize / maxSize + 1;
List<List<List<String>>> groups = new ArrayList<>();
for (int i = 0; i < groupCount; i++) {
int startIndex = i * maxSize;
int endIndex = Math.min(startIndex + maxSize, totalSize);
List<List<String>> group = new ArrayList<>(resultList.subList(startIndex, endIndex));
groups.add(group);
}
```
这段代码中,首先将Map<String, List<String>>转换为List<List<String>>,然后计算出需要分成几组,每组大小为20。最后将List<List<String>>按照均匀分配的规则分成多个List<List<String>>。
阅读全文