【问题标题】:What is the equivalent way to do Ordering.lexicographical() in Java 8 Comparator?在 Java 8 Comparator 中执行 Ordering.lexicographical() 的等效方法是什么?
【发布时间】:2017-04-28 15:12:22
【问题描述】:

有没有办法用 Java 8 Comparator 实现 Ordering.lexicographical()?

Comparator.thenCompare 似乎仅限于此

【问题讨论】:

标签: java java-8 guava comparator lexicographic-ordering


【解决方案1】:

貌似没有,没有。

因此,Guava 仍然提供了这个功能,但是在新的类中Comparatorshttps://guava.dev/releases/snapshot/api/docs/com/google/common/collect/Comparators.html#lexicographical(java.util.Comparator)

请注意,Guava 通常会很好地告诉您是否以及如何将其迁移到新的 Java 功能,因此您通常最好检查它的 Javadoc,而不是自己挖掘。在这种情况下:https://guava.dev/releases/snapshot/api/docs/com/google/common/collect/Ordering.html#lexicographical()

【讨论】:

  • 需要明确的是,在这种情况下,Guava 会警告不要使用 Ordering 类(这在 Java8 之前的时代无疑是非常好的)。与 Ordering.naturalnullsFirst 等在 Java8 中具有完全等价物不同,遗憾的是在 Java8 中没有完全替代 Ordering.lexicographical。对于那些不想在他们的项目中使用 Guava 的人来说,Guava Javadoc 中的“Java 8 users:”部分在这种情况下有点误导,因此在这里创建自己的实现是不可避免的。
猜你喜欢
  • 1970-01-01
  • 2012-09-30
  • 2018-04-02
  • 2021-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-15
相关资源
最近更新 更多