记录一下显示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

猜你喜欢

转载自www.cnblogs.com/molisiye/p/8946808.html