Map<String, List<>>转List<List<>>且均匀分配,List大小是20
时间: 2023-10-14 16:31:23 浏览: 48
假设原始的Map<String, List<T>>为 map,其中每个String对应的List大小不一。
首先,我们需要计算出最终的List<List<T>>中每个List的大小,假设为size。由于需要均匀分配,那么size应该为所有String对应的List的大小的平均值(向下取整)。
接下来,我们可以使用一个循环将原始的Map<String, List<T>>转化为List<List<T>>。具体步骤如下:
1. 首先计算出size。
```java
int size = 20;
int totalSize = 0;
for (List<T> list : map.values()) {
totalSize += list.size();
}
size = totalSize / map.size();
```
2. 然后循环处理每个String对应的List,将它们均匀分配到List<List<T>>中。
```java
List<List<T>> result = new ArrayList<>();
List<T> temp = new ArrayList<>();
int count = 0;
for (List<T> list : map.values()) {
for (T item : list) {
temp.add(item);
count++;
if (count == size) {
result.add(temp);
temp = new ArrayList<>();
count = 0;
}
}
}
if (!temp.isEmpty()) {
result.add(temp);
}
```
这样就可以将原始的Map<String, List<T>>转化为List<List<T>>并且均匀分配,List大小为20。
相关推荐
![jar](https://img-home.csdnimg.cn/images/20210720083455.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)