lambda是java8最重要的特性之一,可以让我们用简洁流畅的代码完成一个功能,其核心思想是将面向对象中的传递数据变成传递行为。
public void listMapTest(){ List<Map<String,Object>> l = new ArrayList<>(); Map<String,Object> map = new HashMap<>(); map.put("id",1); map.put("name","张三"); map.put("sex","男"); l.add(map); map = new HashMap<>(); map.put("id",3); map.put("name","李素"); map.put("sex","男"); l.add(map); map = new HashMap<>(); map.put("id",2); map.put("name","王五"); map.put("sex","女"); l.add(map); map = new HashMap<>(); map.put("id",4); map.put("name","张非"); map.put("sex","男"); l.add(map); //分组 System.out.println("分组前:"+l); Map<String,List<Map<String,Object>>> sexMap = l.stream().collect(Collectors.groupingBy(x->x.get("sex").toString())); System.out.println("分组后:"+sexMap); //筛选 性别为男的 l = l.stream().filter(x->("男".equals(x.get("sex").toString()))).collect(Collectors.toList()); System.out.println("筛选后:"+l); //排序 正序 l.sort(Comparator.comparing(x->x.get("id").toString())); System.out.println("排序后:"+l); }