Map.Entry与entrySet与entry,getKey()与entry.getValue()的用法

直接上代码 实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class SinglePressureResultDTO {
   
    private Integer Times;   
    private Integer SCU_number; 
    private Boolean Intervention;  
    private Long startTime_low;   
    private Long low_time;   
    private Long startTime_rise;  
    private Long endTime_rise;  
    private Long rise_time;   
    private Long total_time;  
    private Long endTime_resistance; 
    private Long resistance_time;   
    private Long time_resistance_turningup;  
    private Float pressure_resistance_turningup;  
    private Float end_resistance;   
    private Float initial_support;
    private Float moving_pressure;
}

测试

public static void main(String[] args) {
		//给集合赋值  元素为SinglePressureResultDTO对象
        List<SinglePressureResultDTO> singlePressure=new ArrayList<>();
        singlePressure.add(new SinglePressureResultDTO
        (1,2,true,1l,1l,1l,1l,1l,1l,1l,1l,1l,1f,1f,1f,1f));
        singlePressure.add(new SinglePressureResultDTO
        (1,3,true,1l,1l,1l,1l,1l,1l,1l,1l,1l,1f,1f,1f,1f));        
        singlePressure.add(new SinglePressureResultDTO
        (1,4,true,2l,1l,1l,1l,1l,1l,1l,1l,1l,1f,1f,1f,1f));
        singlePressure.add(new SinglePressureResultDTO
        (1,4,false,3l,1l,1l,1l,1l,1l,1l,1l,1l,1f,1f,1f,1f));
        System.out.println(adapterToASQTotalDTO(singlePressure)+"   )))");


 public static ASQTotalDTO adapterToASQTotalDTO(List<SinglePressureResultDTO> singlePressure) {
        ASQTotalDTO asqTotalDTO = new ASQTotalDTO();
        List<ASQSingleDTO> asqs = new ArrayList<>();
        if (CollectionUtil.isEmpty(singlePressure)) {
            return asqTotalDTO;
        }
        
        //将传递过来的集合以SCU_number属性进行分组  类似于key-value的形式  
        //key是SCU_number,value是SCU_number符合条件的所有对象(集合)
        //{2=[SinglePressureResultDTO(Times=1, SCU_number=2, Intervention=true, startTime_low=1, low_time=1, startTime_rise=1, endTime_rise=1, rise_time=1, total_time=1, endTime_resistance=1, resistance_time=1, time_resistance_turningup=1, pressure_resistance_turningup=1.0, end_resistance=1.0, initial_support=1.0, moving_pressure=1.0)],
        // 3=[SinglePressureResultDTO(Times=1, SCU_number=3, Intervention=true, startTime_low=1, low_time=1, startTime_rise=1, endTime_rise=1, rise_time=1, total_time=1, endTime_resistance=1, resistance_time=1, time_resistance_turningup=1, pressure_resistance_turningup=1.0, end_resistance=1.0, initial_support=1.0, moving_pressure=1.0)],
        // 4=[SinglePressureResultDTO(Times=1, SCU_number=4, Intervention=true, startTime_low=2, low_time=1, startTime_rise=1, endTime_rise=1, rise_time=1, total_time=1, endTime_resistance=1, resistance_time=1, time_resistance_turningup=1, pressure_resistance_turningup=1.0, end_resistance=1.0, initial_support=1.0, moving_pressure=1.0), SinglePressureResultDTO(Times=1, SCU_number=4, Intervention=false, startTime_low=3, low_time=1, startTime_rise=1, endTime_rise=1, rise_time=1, total_time=1, endTime_resistance=1, resistance_time=1, time_resistance_turningup=1, pressure_resistance_turningup=1.0, end_resistance=1.0, initial_support=1.0, moving_pressure=1.0)]}    
        Map<Integer, List<SinglePressureResultDTO>> scuResult = singlePressure.stream().collect(Collectors.groupingBy(SinglePressureResultDTO::getSCU_number));

        System.out.println(scuResult+"  scuResult");
        //获取每一个集合中的元素  确切来说,获取每一个key-value
        //并且遍历每一个key-value
        for (Map.Entry<Integer, List<SinglePressureResultDTO>> entry : scuResult.entrySet()) {
			//在这里可以打印每一个key-value
            System.out.println(entry+"  key-value");

            ASQSingleDTO asqSingle = new ASQSingleDTO();
            List<ASQCirculateDTO> auto = new ArrayList<>();
            List<ASQCirculateDTO> manual = new ArrayList<>();

			//遍历每一个key-value中的value(注意 value是集合)
            for (SinglePressureResultDTO pressure : entry.getValue()) {

				//同样可以获取到entry中的key以及entry中的value
                System.out.println(entry.getKey()+"  **&^&%^");
                System.out.println(entry.getValue()+"   *&^%");

                ASQCirculateDTO dto = new ASQCirculateDTO();
                dto.setDownStartTime(pressure.getStartTime_low());
                dto.setDownEndTime(pressure.getStartTime_rise());
                dto.setUpStartTime(pressure.getStartTime_rise());
                dto.setUpEndTime(pressure.getEndTime_rise());
                dto.setEndStrength(pressure.getEnd_resistance());
                dto.setInflectionPressure(pressure.getPressure_resistance_turningup());
                dto.setInitStrength(pressure.getInitial_support());
                if (pressure.getIntervention()) {
                    manual.add(dto);
                } else {
                    auto.add(dto);
                }
            }
            asqSingle.setScuNo(entry.getKey());
            System.out.println(entry.getKey()+"   entry.getKey()");
            asqSingle.setAsqNum(auto.size());
            asqSingle.setNsqNum(manual.size());
            asqSingle.setAuto(auto);
            asqSingle.setManual(manual);
            //每个支架数据作为asqs的一个元素
            asqs.add(asqSingle);

        }

        asqTotalDTO.setAsqs(asqs);
        System.out.println(asqTotalDTO);
        List<ASQSingleDTO> asqs1 = asqTotalDTO.getAsqs();
        //for (ASQSingleDTO asqSingleDTO:asqs1) {
            //System.out.println(asqSingleDTO+"   -----");
        //}
        System.out.println(asqs1+" asq1");
        return asqTotalDTO;
    }
    }

运行 System.out.println(asqs1+" asq1");结果

[ASQSingleDTO{scuNo=2, asqNum=0, nsqNum=1, auto=[], manual=[ASQCirculateDTO{downStartTime=1, downEndTime=1, moveStartTime=null, moveEndTime=null, upStartTime=1, upEndTime=1, inflectionPressure=1.0, initStrength=1.0, endStrength=1.0}]}, 
ASQSingleDTO{scuNo=3, asqNum=0, nsqNum=1, auto=[], manual=[ASQCirculateDTO{downStartTime=1, downEndTime=1, moveStartTime=null, moveEndTime=null, upStartTime=1, upEndTime=1, inflectionPressure=1.0, initStrength=1.0, endStrength=1.0}]}, 
ASQSingleDTO{scuNo=4, asqNum=1, nsqNum=1, auto=[ASQCirculateDTO{downStartTime=3, downEndTime=1, moveStartTime=null, moveEndTime=null, upStartTime=1, upEndTime=1, inflectionPressure=1.0, initStrength=1.0, endStrength=1.0}], manual=[ASQCirculateDTO{downStartTime=2, downEndTime=1, moveStartTime=null, moveEndTime=null, upStartTime=1, upEndTime=1, inflectionPressure=1.0, initStrength=1.0, endStrength=1.0}]}] asq1

打印key-value运行结果

2=[SinglePressureResultDTO(Times=1, SCU_number=2, Intervention=true, startTime_low=1, low_time=1, startTime_rise=1, endTime_rise=1, rise_time=1, total_time=1, endTime_resistance=1, resistance_time=1, time_resistance_turningup=1, pressure_resistance_turningup=1.0, end_resistance=1.0, initial_support=1.0, moving_pressure=1.0)]  key-value
3=[SinglePressureResultDTO(Times=1, SCU_number=3, Intervention=true, startTime_low=1, low_time=1, startTime_rise=1, endTime_rise=1, rise_time=1, total_time=1, endTime_resistance=1, resistance_time=1, time_resistance_turningup=1, pressure_resistance_turningup=1.0, end_resistance=1.0, initial_support=1.0, moving_pressure=1.0)]  key-value
4=[SinglePressureResultDTO(Times=1, SCU_number=4, Intervention=true, startTime_low=2, low_time=1, startTime_rise=1, endTime_rise=1, rise_time=1, total_time=1, endTime_resistance=1, resistance_time=1, time_resistance_turningup=1, pressure_resistance_turningup=1.0, end_resistance=1.0, initial_support=1.0, moving_pressure=1.0), SinglePressureResultDTO(Times=1, SCU_number=4, Intervention=false, startTime_low=3, low_time=1, startTime_rise=1, endTime_rise=1, rise_time=1, total_time=1, endTime_resistance=1, resistance_time=1, time_resistance_turningup=1, pressure_resistance_turningup=1.0, end_resistance=1.0, initial_support=1.0, moving_pressure=1.0)]  key-value

在这里插入图片描述

这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!!! 欢迎加入技术群聊。

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值