【发布时间】:2020-11-27 08:32:09
【问题描述】:
您好,我想知道是否有人可以帮助我编写一些我坚持的代码。所以我正在使用 lambda 语句编写一个自定义比较器,我想执行以下操作。如果 .getName() 返回的名称彼此相等,那么我想从 .getDirection() 中选择字符串“Up”的名称(在这种情况下,它保证其中一个是“Up”,另一个是"Down"),否则我们将根据 .getType() 来查看哪个字母顺序更高。
到目前为止,我有这个:
(x,y) -> x.getName().equals(y.getName()) ? //confused part : x.getType().compareTo(y.getType) );
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
如果 .getName() 返回的名称彼此相等,那么我想选择一个字符串“Up”(在这种情况下,它保证其中一个是“Up”) --> 什么是“向上”?
-
让我编辑我搞砸的问题。我遗漏了一部分。
-
你能澄清一下吗?如果两个对象的名称相同,你在比较哪些字段以及如何比较?
-
所以我们在比较两个相同类型的对象。 .getName() 和 .getDirection() 返回字符串。因此,如果 x.getName() 的字符串与 y.getName() 的字符串相同,那么我将查看 x.getDirection() 或 y.getDirection() 是否是字符串“Up”。保证只有一个是“向上”。如果 x.getName() 和 y.getName() 不一样,那我就调用 x.getType() 和 y.getType(),按字母顺序挑选。
-
好的,你检查一下 x.getDirection() 或 y.getDirection() 是否是字符串“Up”。假设 x.getDirection() 是“向上”。现在会发生什么?
标签: java lambda comparator