工作需要 要查出来两个list对象得差值 是根据其中一个字段的 正好这段时间再用stream 就试了一下
//需要求相同的只需要把第二行!去掉就行
List<AlarmComparisonDto> collect = lastWeekHostAlarmNum.stream()
.filter(item -> !thisWeekHostAlarmNum.stream()
.map(e -> e.getHostId())
.collect(toList())
.contains(item.getHostId()))
.collect(toList());
System.err.println(thisWeekHostAlarmNum+"--------thisWeekHostAlarmNum");
System.err.println(lastWeekHostAlarmNum+"-------------lastWeekHostAlarmNum");
System.err.println(collect+"-------------collect");
AlarmComparisonDto的也一起放出来吧
/**
* ClassName: AlarmComparisonDto
* Description:
* date: 2022/1/19 10:47
*
* @author robotname a
* @author dev whz
* @since JDK 1.8
*/
@Data
public class AlarmComparisonDto {
private Integer restNum;
private Integer hostId;
private boolean sort;
}
结果
[AlarmComparisonDto(restNum=14, hostId=10369, sort=false), AlarmComparisonDto(restNum=1, hostId=10423, sort=false), AlarmComparisonDto(restNum=2, hostId=13213, sort=true)]--------thisWeekHostAlarmNum
[AlarmComparisonDto(restNum=1, hostId=11120, sort=false), AlarmComparisonDto(restNum=1, hostId=11121, sort=false), AlarmComparisonDto(restNum=1, hostId=13213, sort=false)]-------------lastWeekHostAlarmNum
[AlarmComparisonDto(restNum=1, hostId=11120, sort=false), AlarmComparisonDto(restNum=1, hostId=11121, sort=false)]-------------collect
后记 同我们公司大哥说 这么效率比较低 还需要优化 先记录一下 优化之后再后面继续编辑