- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Java 8 之前,我们实现了 Comparable.compareTo(...)
像这样:
public int compare(Person a, Person b) {
return new CompareToBuilder()
.append(a.getLastName(), b.getLastName())
.append(a.getFirstName(), b.getFirstName())
.toComparison();
}
public int compare(Person a, Person b) {
return Comparator
.comparing(Person::getLastName)
.thenComparing(Person::getFirstName)
.compare(a, b);
}
commons-lang3
依赖性。
那个新的 Java 8 会更快吗?有没有办法自动迁移? 我没有找到它的 IntelliJ 意图。
public int compare(SingleBenchmarkResult a, SingleBenchmarkResult b) {
return new CompareToBuilder()
.append(b.hasAnyFailure(), a.hasAnyFailure()) // Reverse
.append(a.getAverageScore(), b.getAverageScore(), resilientScoreComparator)
.toComparison();
}
public int compare(SingleBenchmarkResult a, SingleBenchmarkResult b) {
return Comparator
.comparing(SingleBenchmarkResult::hasAnyFailure, Comparator.reverseOrder()) // Reverse
.thenComparing(SingleBenchmarkResult::getAverageScore, resilientScoreComparator)
.compare(a, b);
}
最佳答案
如果你这样写
public int compare(Person a, Person b) {
return Comparator
.comparing(Person::getLastName)
.thenComparing(Person::getFirstName)
.compare(a, b);
}
Comparator
来浪费性能对于每次比较。在查看周围的代码时,它显然应该是荒谬的。
compare(Person a, Person b)
方法肯定是实现
Comparator<Person>
的类的一部分,您可以在某个地方实例化它以获得所需的比较器。您应该用唯一的
Comparator.comparing(Person::getLastName).thenComparing(Person::getFirstName)
替换该实例实例代替,在整个操作中使用。
// reusable
static final Comparator<Person> By_NAME = Comparator
.comparing(Person::getLastName).thenComparing(Person::getFirstName);
listOfPersons.sort(Comparator.comparing(Person::getLastName)
.thenComparing(Person::getFirstName));
关于intellij-idea - 用 Java 8 的 Comparator.comparing(...).thenComparing(...) 替换 CompareToBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38176022/
我正在尝试翻译以下 Java 代码: import java.util.Comparator; public class ComparatorTestJava { public static
我正在尝试比较同一类的两个对象,目标是比较它们并确定哪些字段不匹配。 我的域类示例 @Builder(toBuilder=true) class Employee { String name
我有一个问题,如果我正在比较整数,调用 thenComparingInt(My::intMethod) 与 thenComparing(My::intMethod) 是否存在性能差异,换句话说,如果我
我如何使用 Comparator 和 thenComparing 测试列表排序 list.sort(Comparator.comparing(ObjectA::getA()) //some int
我有一段代码需要修改。看起来像这样: new ComparatorFactory<>(thing -> thing.getLong()); return new ComparatorFactory.b
尝试反序列化使用构建器的对象时出现以下异常。我不确定 thenComparing 属性指的是什么。我会说构建器正在使用 @JsonPOJOBuilder(withPrefix = "")注解。 com
在 Java 8 之前,我们实现了 Comparable.compareTo(...)像这样: public int compare(Person a, Person b) { return
我是一名优秀的程序员,十分优秀!