java - 如何合并两个ArrayList
问题描述
ArrayList<Map<String, String>> result1
result1
就好像
(1, a)
(2, a)
(3, b)
(4, e)
(5, e)
ArrayList<Map<String, String>> result2
result2
就好像
(1,android)
(2,ios)
(3,android)
(4,android)
(5,ios)
我想合并两张地图来构建一张这样的地图
(1, ( a, android))
(2, ( a, ios))
(3, ( b, android))
(4, (e, android))
(5, (e, ios))
如何做到这一点?
解决方案
对于您在此处指定的要求,您可以这样做。
我正在遍历第一张地图的键。并从所有地图中收集每个键的值并将它们放入列表中。然后将列表放入生成的地图中。
import java.util.*;
public class MergeMaps
{
public static void main(String[] args)
{
Map<String, String> map1 = new HashMap<>();
map1.put("1", "a");
map1.put("2", "a");
map1.put("3", "b");
map1.put("4", "e");
map1.put("5", "e");
Map<String, String> map2 = new HashMap<>();
map2.put("1", "android");
map2.put("2", "ios");
map2.put("3", "android");
map2.put("4", "android");
map2.put("5", "ios");
Set<String> keys = new HashSet<>();
keys.addAll(map1.keySet());
keys.addAll(map2.keySet());
Map<String, List<String>> mergedMap = new HashMap<>();
for (String key : keys)
{
List<String> list = new ArrayList<>();
list.add(map1.get(key));
list.add(map2.get(key));
mergedMap.put(key, list);
}
System.out.println(mergedMap);
}
}
输出将是:
{1=[a, android], 2=[a, ios], 3=[b, android], 4=[e, android], 5=[e, ios]}
推荐阅读
- jenkins - 詹金斯 TFS 结帐失败
- c# - 试图将 netcore csproj 从 XML 反序列化为 Object
- powershell - 尝试连接到 PowerShell 中的 SkypeOnlineConnector 模块时出现 Accesstoken 错误
- javascript - 如何将图像从 cli stdout 加载到缓冲区并插入到画布
- ansible - aws_ec2 库存插件:基于 AWS 标签创建主机变量
- android - Android shareCompat 回调?
- c# - 读取时如何忽略 CSV 中的空行
- python - Python Regex 从句子中提取地址和旅行时间?
- java - brew cask install 采用openjdk11后缺少java源文件
- jquery - 是否有任何原因导致新数据未呈现