java-如何将临时映射合并到永久映射,以便可以记录相同键的多个项目?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何将临时映射合并到永久映射,以便可以记录相同键的多个项目?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1365字,纯文字阅读大概需要2分钟。
内容图文
![java-如何将临时映射合并到永久映射,以便可以记录相同键的多个项目?](/upload/InfoBanner/zyjiaocheng/669/9863ed78b5994b59a0f40c501c71fded.jpg)
因此,我有两张地图,其中的关键是基于单词的长度.每当有长度相同的单词时,我都希望将其添加到该键中.
我想通过使用map.merge()函数来执行此操作,但是在查看文档后,我不确定如何执行此操作.我尝试查看其他资源,但没有多少帮助.
Map<Integer, String> map = new HashMap<Integer, String>();
Map<Integer, String> map = new HashMap<Integer, String>();
String[] wordsSplit = doc.split(" ");
for(int i = 0; i < wordsSplit.length; i++) {
int key = wordsSplit[i].length();
Map<Integer, String> tempMap = new HashMap<Integer, String>();
tempMap.put(key, wordsSplit[i]);
//merge here
map.merge(key, map.keySet(), map.get(key) + ", " + wordsSplit[i]);
}
编辑:这个问题是不同的,因为我在这里试图找出如何在将临时地图合并到旧地图的上下文中进行地图绘制.
例如,这意味着如果有多个项目共享同一键,那么结果将更多为:键:“汽车,酒吧,焦油”
解决方法:
首先,您需要一个合并功能来合并长度相同的单词,并用“,”分隔;
BiFunction<String, String, String> mergeFunction = (i, j) -> {
return i + ", " + j;
};
然后map.merge(key,x,mergeFunction);根据其长度合并wordSplit数组的元素.键下方是单词的长度,x代表wordsSplit [i]
Stream.of(wordsSplit).forEach(x -> {
int key = x.length();
map.merge(key, x, mergeFunction);
});
或者,您可以跳过合并函数(i,j)的正文-> {return i“,” j; }放入map.merge(),而不是单独定义mergeFunction:
Stream.of(wordsSplit).forEach(x -> {
int key = x.length();
map.merge(key, x, (i, j) -> { return i + ", " + j; });
});
内容总结
以上是互联网集市为您收集整理的java-如何将临时映射合并到永久映射,以便可以记录相同键的多个项目?全部内容,希望文章能够帮你解决java-如何将临时映射合并到永久映射,以便可以记录相同键的多个项目?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。