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