package com.zy.acs.manager.core.domain; import com.zy.acs.common.utils.GsonUtils; import com.zy.acs.framework.common.Cools; import lombok.Data; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * Created by vincent on 11/5/2024 */ @Data public class BlockVehicleDto { private String vehicle; private boolean avoidable; public BlockVehicleDto() { } public BlockVehicleDto(String vehicle, boolean avoidable) { this.vehicle = vehicle; this.avoidable = avoidable; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; BlockVehicleDto that = (BlockVehicleDto) o; return Objects.equals(vehicle, that.vehicle); } @Override public int hashCode() { return Objects.hash(vehicle); } public static boolean customContain(List list, String vehicle) { if (Cools.isEmpty(list, vehicle)) { return false; } for (BlockVehicleDto dto : list) { if (dto.getVehicle().equals(vehicle)) { return true; } } return false; } public static void main(String[] args) { List blockVehicleList = new ArrayList<>(); blockVehicleList.add(new BlockVehicleDto("1", true)); blockVehicleList.add(new BlockVehicleDto("2", true)); // blockVehicleList.add(new BlockVehicleDto("3", false)); // blockVehicleList.add(new BlockVehicleDto("4", false)); // blockVehicleList.add(new BlockVehicleDto("5", false)); // blockVehicleList.add(new BlockVehicleDto("5", true)); // blockVehicleList.add(new BlockVehicleDto("4", true)); System.out.println(GsonUtils.toJson(blockVehicleList)); System.out.println(GsonUtils.toJson(blockVehicleList.stream().distinct().collect(Collectors.toList()))); System.out.println(blockVehicleList.stream().anyMatch(blockVehicleDto -> !blockVehicleDto.isAvoidable())); String blockAgvNo = blockVehicleList.stream() .filter(BlockVehicleDto::isAvoidable) .map(BlockVehicleDto::getVehicle) .findFirst().orElse(null); System.out.println(blockAgvNo); } }