stream list分组map 每组list随机一条
时间: 2023-07-05 19:26:53 浏览: 114
JDK8通过Stream 对List,Map操作和互转的实现
5星 · 资源好评率100%
您好!针对您的问题,我可以提供以下Java代码实现:
```java
import java.util.*;
public class StreamListMap {
public static void main(String[] args) {
// 初始化原始数据
List<String> list1 = Arrays.asList("A1", "A2", "A3", "A4", "A5");
List<String> list2 = Arrays.asList("B1", "B2", "B3");
List<String> list3 = Arrays.asList("C1", "C2", "C3", "C4");
List<String> list4 = Arrays.asList("D1", "D2");
Map<Integer, List<String>> map = new HashMap<>();
map.put(1, list1);
map.put(2, list2);
map.put(3, list3);
map.put(4, list4);
// 每组list随机一条
Map<Integer, String> result = new HashMap<>();
Random random = new Random();
map.forEach((key, value) -> {
int index = random.nextInt(value.size());
result.put(key, value.get(index));
});
// 输出结果
System.out.println(result);
}
}
```
以上代码中,首先初始化了一个Map,其中key为分组标识,value为一个List。接着使用Java 8的Stream API对Map进行遍历,对于每一组List,随机选取其中一个元素,并将其存入另一个Map中,最终输出结果。
希望能够解决您的问题,如果您有任何疑问或需要进一步的帮助,请随时提问。
阅读全文