记录一下显示Map>中的ArrayList里的数据的操作

时间:2023-03-10 07:55:21
记录一下显示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