java - 比较两个 id 以获得较低的值
问题描述
我试图比较两个 id 以获得较低的 ascii。id 是字母数字的"836778436K"
,"K8474874"
...
我试过了
lowerSupplyDeliveryTerm.stream()
.map(dto -> dto.provider.nif)
.min(SupplyDto::provider.nif)
SupplyDto
班级是
public class SupplyDto {
public String id;
public long version;
public SupplierProviderDto provider = new SupplierProviderDto();
public SuppliedSparePartDto sparePart = new SuppliedSparePartDto();
public double price;
public int deliveryTerm;
public static class SupplierProviderDto {
public String id;
public String nif;
public String name;
}
public static class SuppliedSparePartDto {
public String id;
public String code;
public String description;
}
}
问题是我不知道应该在 min 函数中引入哪个 lambda 函数来比较 dto 中提供程序的 nif。
提前致谢。
解决方案
如果您正在寻找最小ID
的嵌套对象,您可以编写如下:
lowerSupplyDeliveryTerm.stream()
.map(dto -> dto.provider.nif)
.min(String::compareTo) // Optional<String> is returned here
.orElse("No minimal nif found")
如果您需要以最少的 nif 获取 DTO 的 ID:
lowerSupplyDeliveryTerm.stream()
.min(Comparator.comparing(dto -> dto.provider.inf))
.map(dto -> dto.provider.id)
.orElse("No ID for minimal nif found")
推荐阅读
- python-3.x - OpenCV 3.2+ FileStorage 会将 SimpleBlobDetector_create 对象保存在 XML 或 YML 中吗?
- azure - 是否可以通过 RESTful 端点访问 Azure 容器实例中的 Docker 容器?
- javascript - 事件侦听器是否在 Node.js 中保留在内存中?
- oracle - 报告需要数小时才能显示数据并返回 0 条记录
- django - 由于 ec2 服务器中的 EnvironmentError 无法安装软件包
- vba - 是否可以将 Excel 图表的格式选项提取到 VBA 代码中?
- sql - Amazon Redshift:公共假期表的重复日期
- sql - SSRS表达式多条件
- javascript - jQuery on change 总是打印相同的值
- plugins - gitbook favicon插件不起作用