ArrayList排序问题,我有一个DeviceEntity类,里面有一个name字段,现在的要求是当name="Unknown"时,这条数据就往后排,那现在这个compareTo()方法该怎么重写呀
时间: 2024-03-27 08:39:44 浏览: 30
你可以在 `DeviceEntity` 类中实现 `Comparable` 接口,并重写 `compareTo` 方法来实现排序。以下是一个示例代码:
```java
public class DeviceEntity implements Comparable<DeviceEntity> {
private String name;
public DeviceEntity(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(DeviceEntity other) {
if (this.name.equals("Unknown") && !other.name.equals("Unknown")) {
return 1; // 当前对象的 name 是 "Unknown",比较大,往后排
} else if (!this.name.equals("Unknown") && other.name.equals("Unknown")) {
return -1; // 当前对象的 name 不是 "Unknown",比较小,往前排
} else {
return 0; // 当前对象和 other 对象的 name 都是 "Unknown",不做排序
}
}
}
```
然后,你可以使用 `Collections.sort()` 方法来对 `ArrayList` 进行排序,如下所示:
```java
ArrayList<DeviceEntity> devices = new ArrayList<>();
// 添加设备到列表中
Collections.sort(devices); // 对列表进行排序
```
这样,列表中的 `DeviceEntity` 对象就会按照你的要求进行排序。
阅读全文