java将map根据key分组_Map根据value值进行分组
今天碰到同事在群里问怎么把一个Map根据value进行分组,当时我的第一想法是将value和key互换,
多个value对应的不同key作为集合,代码如下:
1
2
MapSataMap=new HashMap<>();
final Map> groupMap = new HashMap<>();
SataMap.put("A",1);
SataMap.put("b",3);
SataMap.put("c",2);
SataMap.put("D",4);
SataMap.put("e",2);
SataMap.put("f",4);
SataMap.put("G",3);
SataMap.put("h",2);
System.out.println(result);
SataMap.forEach(new BiConsumer() {
@Override
public void accept(String key, Integer value) {
if(groupMap.containsKey(value)){
groupMap.get(value).add(key);
}else{
List values = new ArrayList<>();
values.add(key);
groupMap.put(value, values);
}
}
});
结果很快被打脸了,同事找到一个更好的方法
Map>>result= SataMap.entrySet().stream().collect(Collectors.groupingBy(c -> c.getValue()));
1
将Map转换为一个entry集合,然后再用集合分组的方式,就很简单的实现这个功能了
java将map根据key分组_Map根据value值进行分组相关推荐
- java将map根据key分组_Java将List中的实体类按照某个字段进行分组并存放至Map中操作代码...
本篇文章小编给大家分享一下Java将List中的实体类按照某个字段进行分组并存放至Map中操作代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 1. ...
- java中map删除指定元素_Map中根据条件删除元素
今天在写程序过程中,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下: public Map processM ...
- java遍历map(java遍历map的key)
java中map集合怎么遍历 遍历方法代码如下: import java.util.HashMap; import java.util.Map; public class App01 { public ...
- Java获取map中key和value的方法
最近项目技术转型,开始使用java来写需求.需求中碰到需要获取map中key和value的地方,网络上查了下,得到了解决方法.为防止遗忘,故记录于此. java中获取map中key和value的方式有 ...
- Java中Map获取key和value
Java Map获取key和value的方法 List<Map<String,Object>> list =new ArrayList<Map<String,Ob ...
- java中map集合的修改_map集合修改其中元素(示例代码)
packagecom.swift.lianxi;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importj ...
- java遍历map获取key value
public static void main(String[] args) {// 循环遍历Map的2中方法Map<String, Object> map = new HashMap&l ...
- JAVA 通过value获取Map中key的三种方法
JAVA 通过value获取Map中key的三种方法 简介 方法描述 循环法 Stream方法 Apache Commons Collections的BidiMap 总结 简介 我们都知道Map是存放 ...
- php 模仿 java_js模仿java的Map集合,实现功能
java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 List 和 Map.List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构 ...
最新文章
- 华为怎么改输入法皮肤_搜狗输入法皮肤挑花眼?这次皮肤效果也能划着看了
- Android自定义控件NumberCircleProgressBar(圆形进度条)的实现
- junit、hamcrest、eclemma的安装与使用
- SAP WM初阶LQ02报错 - Movement Type 901 for manual transfer orders does not exist -
- pycharm 波浪线报绿 Typo: In word 'xxxx'(绿色波浪线)
- Java基础篇:static关键字
- ITK:计算网格的平面参数化
- ASP.NET Core Web API + Identity Server 4 + Angular 6 实战小项目视频
- 刘翔博客答即时通信公司网友提问
- Git常用命令——远程操作
- 因为10万元 乐视云计算又把自己折腾成失信被执行人...
- 蠕虫病毒往往是通过进入计算机系统,2012年甘肃省三职生计算机考试题
- 页面导航【WP7学习札记之七】
- 拿去吧你,软件测试的文件和目录测试都在这
- 亚马逊首席科学家:揭秘 Alexa 语音识别技术|AI NEXT
- 忘记 Apple Watch PIN 码,如何解锁 Apple Watch?
- 小说网站源码_ptcms精美小说阅读网站源码(带采集规则)
- Scala语言精华版笔记整理
- channel is not opened
- miui免root冻结,免root停用miui应用
热门文章
- 如何构建“真正的”元宇宙
- 非全凉凉!武汉大学不允许18级19级非全日制硕士研究生参加校招?
- VMware16安装macOS10.15.1 - 黑苹果 - osx虚拟机
- activiti act_re_model 分析
- Windows添加路由:route add 173.18.18.0 mask 255.255.255.0 172.18.18.1
- windows下添加路由
- python stringio_python 在内存中读写:StringIO / BytesIO
- 删除连续相同字符python_Python 删除连续出现的指定字符的实例
- 【cc150】 硬币问题
- XBoot前后端分离开发平台springboot 2.x iview admin vue 集成activiti工作流 模型设计器 动态数据权限 权限按钮显示 s...