记录一下显示Map<String, ArrayList<String>>中的ArrayList里的数据的操作
1、有以下数据:
ArrayList<Employee> emp = new ArrayList<>();
emp.add(new Employee("zhang", 20));
emp.add(new Employee("liang", 30));
emp.add(new Employee("zhou", 40));
emp.add(new Employee("zang", 25));
emp.add(new Employee("chang", 13));
emp.add(new Employee("jiang", 31));
emp.add(new Employee("hang", 54));
emp.add(new Employee("huang", 30));
emp.add(new Employee("zhan", 24));
emp.add(new Employee("cong", 29));
HashMap<Integer, ArrayList<Employee>> map = new HashMap<>();
map.put(1, emp);
2、 方法一使用entrySet:
for (Map.Entry<Integer, ArrayList<Employee>> e : map.entrySet()) {
for(Employee ee : e.getValue()) {
System.out.println(ee.toString());
}
}
结果如下:
方法一(entrySet):
zhang, 20.0
liang, 30.0
zhou, 40.0
zang, 25.0
chang, 13.0
jiang, 31.0
hang, 54.0
huang, 30.0
zhan, 24.0
cong, 29.0
3、 方法二,使用迭代:
Iterator<Entry<Integer, ArrayList<Employee>>> iterator = map.entrySet().iterator();
while(iterator.hasNext()) {
Entry<Integer, ArrayList<Employee>> ss = (Entry<Integer, ArrayList<Employee>>) iterator.next();
for (Employee employee : ss.getValue()) {
System.out.println(employee);
}
}
结果如下:
方法二(使用迭代):
zhang, 20.0
liang, 30.0
zhou, 40.0
zang, 25.0
chang, 13.0
jiang, 31.0
hang, 54.0
huang, 30.0
zhan, 24.0
cong, 29.0
4、方法三,使用stream的flatMap:
map.values().stream().flatMap(mapper -> mapper.stream()).forEach(mp -> System.out.println(mp));
结果如下:
flatMap:
zhang, 20.0
liang, 30.0
zhou, 40.0
zang, 25.0
chang, 13.0
jiang, 31.0
hang, 54.0
huang, 30.0
zhan, 24.0
cong, 29.0
记录一下显示Map<String, ArrayList<String>>中的ArrayList里的数据的操作的更多相关文章
- 关于Android中获取Intent里的数据
Intent获取数据和发送数据的办法: //直接通过Intent发送 intent.putExtra("name","wytings"); //直接通过Inte ...
- JAVA中List转换String,String转换List,Map转换String,String转换Map之间的转换类
<pre name="code" class="java"></pre><pre name="code" cl ...
- C#部分---arraylist集合、arraylist集合中的object数据转换成int类string类等;间隔时间的表示方法;
ArrayList和Array的区别: 相同点:1.两者都实现了IList.ICollection.IEnumerable接口: 2.两者都可以使用证书索引访问集合中的元素,包括读取和赋值 ...
- C#中ArrayList 、Array与、string、string[]数组的相关转换
一.ArrayList 与 string.string[]数组的转换 1.ArrayList 转换为 string[] : ArrayList list = new ArrayList(); list ...
- hiho1482出勤记录II(string类字符串中查找字符串,库函数的应用)
string类中有很多好用的函数,这里介绍在string类字符串中查找字符串的函数. string类字符串中查找字符串一般可以用: 1.s.find(s1)函数,从前往后查找与目标字符串匹配的第一个位 ...
- 面试官:如何在Integer类型的ArrayList中同时添加String、Character、Boolean等类型的数据? | Java反射高级应用
原文链接:原文来自公众号:C you again,欢迎关注! 1.问题描述 "如何在Integer类型的ArrayList中同时添加String.Character.Boolean等 ...
- android 中List转换String,String转换List 改进版本
原来博客地址http://blog.csdn.net/qq7342272/article/details/6830907 使用原作者贴的代码不是很好用,不能正常运行,所以我稍微改进了一下,特来分享给大 ...
- Java中关于 ArrayList 和 Map 的常用遍历方法 (学习笔记,便于以后查询)
一.学习ArrayList与Map时,关于常用遍历方法的记录如下: 二.附源码如下: package com.study.in.myself; import java.util.ArrayList; ...
- Java--泛型理解和使用 (List<String> list = new ArrayList<String>(); )
List<String> list = new ArrayList<String>(); 第一次看到这行代码是一头雾水,查了好久才弄清楚这是什么东西,怎么用,所以记录下来,方便 ...
随机推荐
- halcon控制显示精度(精确到小数点后6位,精度足够了)
实践应用 set_tposition (WindowHandle3,50, 50) write_string (WindowHandle3, '半径 D1=' +Ra[i]$'#f') set_tpo ...
- String(byte[] bytes, Charset charset) 和 getBytes() 使用
转自:https://techbirds.iteye.com/blog/1855960 @Test public void testBytes(){ //字节数 //中文:ISO:1 GBK:2 UT ...
- delphi 实体类 JSON 数组
delphi 实体类 与JSON转换,序列化 TJson REST.JSON.pas TJson.JsonToObjectTJson.ObjectToJsonString JsonEncode O ...
- Spring Boot 16 条最佳实践
Spring Boot是最流行的用于开发微服务的Java框架.在本文中,我将与你分享自2016年以来我在专业开发中使用Spring Boot所采用的最佳实践.这些内容是基于我的个人经验和一些熟知的Sp ...
- 创建标签的两种方法insertAdjacentHTML 和 createElement 创建标签 setAttribute 赋予标签类型 appendChild 插入标签
1. 建立字符串和insertAdjacentHTML('beforeEnd', ) 2. 通过createElement 创建标签 setAttribute 赋予标签类型 appendChild ...
- col标签的相关实验
col上有width属性,如果对应值没有单位,默认是像素 <!DOCTYPE html> <html> <head> <title>col相关实验< ...
- 使用twised实现一个EchoServer
ProtocolsProtocols描述了如何以异步的方式处理网络中断时间,HTTP.DNS已经IMAP是应用应用层协议中的例子,Protocols实现了IProtocol接口,它饱和如下的方法 ma ...
- 通过curl模拟多线程抓取网页(curl_multi_*)
curl请求多个url,以前都是使用循环来处理.最近发现可以通过curl_multi_*系列函数来模拟多线程.比对一下,发现如果请求的url只有几个,2种方案耗时差不多,但是url比较多,差距就非常明 ...
- qt QTcpServer与QTcpSocket通讯
分类: C/C++ TCP TCP是一个基于流的协议.对于应用程序,数据表现为一个长长的流,而不是一个大大的平面文件.基于TCP的高层协议通常是基于行的或者基于块的. ...
- MySQL中触发器
触发器是与某个事件相关的特殊存储过程,与存储过程不同的是,存储过程需要用 call 调用而出发器不需要使用call调用调用. 也就是自己预先定义好了,当某个事件发生时,就会自动出发触发器进行相关的操作 ...