java - Solve Comparator 不为相等的元素返回 0
问题描述
有用的信息:
IDE:IntelliJ JDK:8u271
我有一个我不明白也不知道如何解决的警告。警告:
Comparator does not return 0 for equal elements
警告突出显示
(a, b)
在这行代码中。
private final Comparator<Entity> renderSorter = (a, b) -> {
if (a.getY() + a.getHeight() < b.getY() + b.getHeight())
return -1;
return 1;
};
警告的含义是什么,我该如何解决?
解决方案
您必须添加一个案例来检查两个值是否相等,比较器应该返回 0。现在它将返回-1
or 1
。
private final Comparator<Entity> renderSorter = (a, b) -> {
return Integer.compare(a.getY() + a.getHeight(), b.getY() + b.getHeight());
};
这将为您解决问题。将比较的责任委托给 Integer 类的 compare 方法。
推荐阅读
- docker - 我想在正在运行的 docker 容器中使用 docker sdk,并想在运行的 docker 容器中构建 docker 映像并将其部署在 minikube 中
- react-native - 使用axios配合reactjs调用asp.net api localhost
- angularjs - 即使页面正在加载,控制台也会出现 404 错误
- php - 为什么 docker 不同步 Windows 10 上容器内的文件?
- kotlin - Kotlin:处理超时连接okhttp
- java - 如何从字符串中提取数字?
- python - wiki xml转储函数
- scala - spark scala中同一个sql请求中的多个计数
- r - 闪亮标签隐藏/显示
- java - JAXWS 方法参数数据类型不会改变