Java8 forEach、filter、map(分组、过滤、排序)

1.1 forEach
List<Menu>  menuList = new ArrayList<Menu>();
/*插入一些数据*/
menuList.add(new Menu("GN001D000","0","系统管理","/admin","Y",1, "GN001D000"));
menuList.add(new Menu("GN001D100","GN001D000","权限管理","/admin","Y",2, "GN001D100"));
menuList.add(new Menu("GN001D110","GN001D100","密码修改","/admin","Y",3, "GN001D110"));
menuList.add(new Menu("GN001D120","GN001D100","新加用户","/admin","Y",4, "GN001D120"));
menuList.add(new Menu("GN001D200","GN001D000","系统监控","/admin","Y",5, "GN001D200"));
menuList.add(new Menu("GN001D210","GN001D200","在线用户","/admin","Y",6, "GN001D210"));
menuList.add(new Menu("GN002D000","0","订阅区","/admin","Y",7, "GN002D000"));
menuList.add(new Menu("GN002D000","0","未知领域","/admin","Y",8, "GN002D000"));

// 分组
Map<String, List<Menu>> map = new HashMap<>();
JSONObject json = new JSONObject();
menuList.forEach(menu -> {
    if (json.containsKey(menu.getId())) {
        ((List<Menu>)json.get(menu.getId())).add(menu);
    } else {
        List<Menu>  list = new ArrayList<Menu>();
        list.add(menu);
        json.put(menu.getId(), list);
    }
});
1.2 filter
// 过滤
menuList.stream().filter(menu -> menu.getId() != null).collect(Collectors.toList());
1.3 map
// 过滤id不为空的数据,并将符合条件的id组合成一个List
menuList.stream().filter(menu -> menu.getId() != null).map(Menu::getId).collect(Collectors.toList())// 将menuList转为map,text为key,Menu对象为value
menuList.stream().collect(Collectors.toMap(Menu::getText, Function.identity()));

Map<String, Object> map = new HashMap<String, Object>();
map.put("1", "壹");
map.put("2", "贰");
map.put("3", "叁");
map.put("4", null);

//Map -> Stream -> Filter -> Map
System.out.println(map.entrySet().stream().filter(m -> null != m.getValue()).collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue())));
//Map -> Stream -> Filter -> String
System.out.println(map.entrySet().stream().map(m -> m.getKey()).collect(Collectors.joining()));
//Map -> Stream -> Filter -> List
System.out.println(map.entrySet().stream().filter(m -> null != m.getValue()).map(m -> m.getValue()).collect(Collectors.toList()));
1.4 排序
// 按id排序
Map<String, List<Menu>> collect = menuList.stream().collect(Collectors.groupingBy(Menu::getId));
System.out.println(Arrays.toString(menuList.toArray()));
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值