Java8 Stream操作

本文展示了如何在Java中对List>进行排序,包括升序和降序,以及如何将List>转换为Map。此外,还演示了如何删除Map中特定键值对的方法,以及使用Java Stream API进行数据处理的示例。
摘要由CSDN通过智能技术生成

1.对List<Map<String,Object>>对象中Map的某个key进行排序

import java.util.*;
import java.util.stream.Collectors;

/*
 * 升序
 */
public class Test{

    public static void main(String[] args) {
        List<Map<String,Object>> list= new ArrayList<>();
        Map<String,Object> mapOne= new HashMap<>();
        mapOne.put("sum", 100);
        Map<String,Object> mapTwo= new HashMap<>();
        mapTwo.put("sum", 50);
        Map<String,Object> mapThree= new HashMap<>();
        mapThree.put("sum", 150);
        list.add(mapOne);
        list.add(mapTwo);
        list.add(mapThree);
        System.out.println("排序前:"+list.toString());
        List<Map<String,Object>> listSort = list.stream().sorted(Comparator
                .comparing(Test::comparingBySum))
                .collect(Collectors.toList());
        System.out.println("排序后:"+listSort.toString());
    }

    private static Integer comparingBySum(Map<String, Object> map){
        return (Integer) map.get("sum");
    }

}

在这里插入图片描述

import java.util.*;
import java.util.stream.Collectors;
/*
 * 降序
 */
public class Test{

    public static void main(String[] args) {
        List<Map<String,Object>> list= new ArrayList<>();
        Map<String,Object> mapOne= new HashMap<>();
        mapOne.put("sum", 100);
        Map<String,Object> mapTwo= new HashMap<>();
        mapTwo.put("sum", 50);
        Map<String,Object> mapThree= new HashMap<>();
        mapThree.put("sum", 150);
        list.add(mapOne);
        list.add(mapTwo);
        list.add(mapThree);
        System.out.println("排序前:"+list.toString());
        List<Map<String,Object>> listSort = list.stream().sorted(Comparator
                .comparing(Test::comparingBySum).reversed())
                .collect(Collectors.toList());
        System.out.println("排序后:"+listSort.toString());
    }

    private static Integer comparingBySum(Map<String, Object> map){
        return (Integer) map.get("sum");
    }
    
}

在这里插入图片描述

2.将List<Map<String,Object>>转换为Map<String,Object>

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Test{
    public static void main(String[] args) {
        List<Map<String,Object>> list = new ArrayList();
        Map<String,Object> map1 = new HashMap();
        map1.put("fruit","Apple");
        map1.put("color","Red");
        list.add(map1);
        map1 = new HashMap();
        map1.put("fruit","Orange");
        map1.put("color","Orange");
        list.add(map1);
        map1 = new HashMap();
        map1.put("fruit","grape");
        map1.put("color","pink");
        list.add(map1);
        map1 = new HashMap();
        map1.put("fruit","watermelon");
        map1.put("color","green");
        list.add(map1);
        Map resultMap = list.stream().collect(
                Collectors.toMap(s->s.get("fruit"), s -> s));
        System.out.println(resultMap);

        Map resultMapTwo = list.stream().collect(
                Collectors.toMap(s->s.get("fruit"), s -> s.get("color")));
        System.out.println(resultMapTwo);
    }
}

在这里插入图片描述
// List<实体>转Map<String,List<实体>>

Map<String,List<ScheduleInfoDTO>> userScheduleListMap=Optional.ofNullable(weekScheduleInfoDTOList).orElse(new ArrayList()).stream()
.collect(Collectors.groupingBy(ScheduleInfoDTO::getUserId));

// 实体类的转换
在这里插入图片描述
// 特殊使用:当数据呈现树状结构的时候
在这里插入图片描述

3.删除Map<String,Object>中key="xxx"的元素// 根据map中得值去判断删除map.values().removeIf(value -> value.contains(“xxx”));

import java.util.*;

public class Test{

    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("zoo","pig");
        map.put("fruit","apple");
        map.put("machine","phone");
        map.put("book","sss");
        System.out.println("map=======>"+map);
        map.values().removeIf(value -> value.contains("sss"));
        System.out.println("remove=======>"+map);
    }
}

在这里插入图片描述

// 根据key删除
map.keySet().removeIf(key -> key.contains(“xxx”));

import java.util.*;

public class Test{

    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("zoo","pig");
        map.put("fruit","apple");
        map.put("machine","phone");
        map.put("book","sss");
        System.out.println("map=======>"+map);
        map.keySet().removeIf(key -> key.contains("book"));
        System.out.println("remove=======>"+map);
    }
}

在这里插入图片描述

// 通过getkey()方法获得值去删除
map.entrySet().removeIf(entry -> entry.getKey().contains(“xxx”));

import java.util.*;

public class Test{

    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("zoo","pig");
        map.put("fruit","apple");
        map.put("machine","phone");
        map.put("book","sss");
        System.out.println("map=======>"+map);
        map.entrySet().removeIf(entry -> entry.getKey().contains("book"));
        System.out.println("remove=======>"+map);
    }
}

在这里插入图片描述

Map<String,List> userScheduleListMap=Optional.ofNullable(weekScheduleInfoDTOList).orElse(new ArrayList()).stream()
.collect(Collectors.groupingBy(ScheduleInfoDTO::getUserId));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聖手求生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值