你好,我想知道是否有人可以帮助我完成一些我卡住的代码。因此,我正在使用lambda语句编写一个自定义比较器,我想执行以下操作。如果返回.getName()的名称彼此相等,那么我想从.getDirection()中选择一个是字符串“Up”(在这种情况下,它保证其中一个是“Up”,另一个是“Down”),否则我们将根据.getType()在字母顺序上查看哪个更高)。
到目前为止,我有这个:(x, y)-
任何帮助都将不胜感激,谢谢。
我创建了一个示例类,希望能有所帮助。
package com;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author jinleizhang
*/
public class ComparatorTest {
static class Car {
String name;
boolean up;
String type;
Car(String name, boolean up, String type) {
this.name = name;
this.up = up;
this.type = type;
}
public String getName() {
return this.name;
}
public boolean isUp() {
return this.up;
}
public String getType() {
return this.type;
}
@Override
public String toString() {
return "Car{" +
"name='" + name + '\'' +
", up=" + up +
", type='" + type + '\'' +
'}';
}
}
public static void main(String[] args) {
Car carA = new Car("NewCar", false, "type2020");
Car carB = new Car("NewCar", true, "type2019");
Car carC = new Car("OldCar", true, "type1990");
List<Car> cars = new ArrayList<>();
cars.add(carA);
cars.add(carB);
cars.add(carC);
Collections.sort(cars, (x, y) -> {
if (x.getName().equals(y.getName())) {
return x.isUp() ? -1 : 1;
}
return x.getType().compareTo(y.getType());
});
for (var car : cars) {
System.out.println(car);
}
}
}
输出
Car{name='OldCar', up=true, type='type1990'}
Car{name='NewCar', up=true, type='type2019'}
Car{name='NewCar', up=false, type='type2020'}
不要试图变得过于贪婪。闭包很好,但目标不是编写最少的代码,而是只编写以易于理解的方式完成工作所需的代码(好吧,大多数时候无论如何......)
(x, y) -> {
if (x.getName().equals(y.getName()) {
return "Up".equals(x.getDirection()) ? -1 : 1;
} else {
return x.getType().compareTo(y.getType());
}
}
问题内容: 我有一个Java类,用户: 我收到一个包含来自Web服务的用户对象的JSON列表: 我试图编写一个自定义反序列化器: 但是我的解串器不起作用。如何为Gson编写自定义JSON解串器? 问题答案:
问题内容: 我有一个Java类,用户: 我收到一个包含来自Web服务的用户对象的JSON列表: 我试图编写一个自定义反序列化器: 但是我的解串器不起作用。如何为Gson编写自定义JSON解串器? 问题答案: 我假设User类具有适当的构造函数。
在我的PriorityQueue中,我有两种类型的客户,即VIP和常规客户。我想先为贵宾服务,再为常客服务。 如果CustomerID<100,则视为VIP。 如果客户是VIP,他会排在队列中VIP部分的最后 更新:我不想排序任何其他列除了VIP。我不想添加“日期”,因为它感觉像是一个黑客,而不是理解Java是如何工作的。
问题内容: 我想为汽车清单开发一个排序演示。我正在使用数据表显示汽车列表。现在实际上我想按汽车颜色对列表进行排序。这里不是按字母顺序排序的。我想使用我的自定义排序顺序,例如先是红色汽车,然后是蓝色,等等。 为此,我尝试使用,但它只允许按字母顺序排序。 因此,任何人都可以指导我实现使用该技术的方法,以便使排序变得更快。 问题答案: 我建议你为汽车颜色创建一个枚举,而不要使用字符串,并且枚举的自然顺序
在将此标记为副本之前,请阅读到底部 我希望能够按照字母顺序对字符串数组(或基于一个字符串值的结构片)进行排序,但要基于自定义字母表或unicode字母。 大多数时候,人们建议使用支持不同预定义语言环境/字母表的拼贴器。(请参阅此Java答案),但对于这些语言环境捆绑包中不可用的稀有语言/字母表,可以做些什么? 我想使用的语言在Golangs的归类支持和可用的语言列表中不可用,所以我需要能够定义自定
问题内容: 我需要定义一个数组,其中包含所有以下特殊字符。 我正在用这个 它接受除“和\以外的所有字符 请帮助如何定义这两个。 问题答案: 并且是String类中的特殊字符 是String的开始或结尾 用于创建如新线的某些字符 标签或你的情况逃脱特殊字符,如和 因此,要使它们成为文字,您必须使用和 另一个想法是使用而不是,这样您就不必转义,并且您的字符可以写为或(因为要求转义- 应该写为- 在这里