【发布时间】:2016-10-30 17:52:58
【问题描述】:
我有一个带有汽车名称的对象列表,在这个列表中我有一些车辆对象。所有对象的值彼此不同。这里的所有对象都是自定义字段,名称为单位,单位中是另一个名称为 unitType ... 的字段,即“T20”、“VT11”或任何其他.. 我想根据 unitType 对这个汽车列表进行排序,例如: 如果 cars(0).getUnit().getUnitType().equals("T20") 首先对所有值进行排序,然后是其他“VT11”,然后是所有其他... 我怎样才能做到这一点?? java中有什么合适的方法吗?
我的单元类:
package com.vehicletracking.vtss.classes.bean;
import java.io.*;
public class Unit implements Serializable{
private int code;
private int unitId;
private String unitType; //X8, X1, X1+, VT10, VT200, SPT100
private Sim sim;
private String commType; //CSD, SMS, GPRS, AUTO
private int modemCode;
private long IMEI;
private String serialNo;
private InputReportProfile inputReportProfile;
private String firmware;
private String packageName;
private String password;
public Unit() {
}
public Unit(int unitId) {
this.unitId = unitId;
}
public Unit(int unitId, String unitType) {
this.unitId = unitId;
this.unitType = unitType;
}
public Unit(int unitId, String unitType, Sim sim) {
this.unitId = unitId;
this.unitType = unitType;
this.sim = sim;
}
public void setUnitId(int unitId) {
this.unitId = unitId;
}
public int getUnitId() {
return this.unitId;
}
public void setUnitType(String unitType) {
this.unitType = unitType;
}
public String getUnitType() {
return this.unitType;
}
public void setSim(Sim sim) {
this.sim = sim;
}
public void setCommType(String commType) {
this.commType = commType;
}
public void setModemCode(int modemCode) {
this.modemCode = modemCode;
}
public void setSerialNo(String serialNo) {
this.serialNo = serialNo;
}
public void setCode(int code) {
this.code = code;
}
public void setInputReportProfile(InputReportProfile inputReportProfile) {
this.inputReportProfile = inputReportProfile;
}
public void setPassword(String password) {
this.password = password;
}
public void setIMEI(long IMEI) {
this.IMEI = IMEI;
}
public Sim getSim() {
return this.sim;
}
public String getCommType() {
return commType;
}
public int getModemCode() {
return modemCode;
}
public String getSerialNo() {
return serialNo;
}
public int getCode() {
return code;
}
public InputReportProfile getInputReportProfile() {
return inputReportProfile;
}
public String getPassword() {
return password;
}
public long getIMEI() {
return IMEI;
}
public int hashCode() {
return unitId;
}
public boolean equals(Object obj) {
if (obj instanceof Unit) {
return this.unitId == ((Unit) obj).getUnitId();
}
return false;
}
public String toString() {
return this.unitId + "/" + this.unitType;
}
public String getFirmware() {
return firmware;
}
public void setFirmware(String firmware) {
this.firmware= firmware;
}
public String getPackageName() {
return packageName;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
}
汽车清单: 列出汽车;
【问题讨论】:
-
您可以使用 Comparator 并通过覆盖它来定义您自己的排序类型,按最后一个 inter 或字符串对它们进行排序。 Collection.sort(whattosor, new Comparator).......
-
您是否有标题中所说的 array 或问题中所说的
List? (数组不是List,ArrayList是List,而不是数组)。 -
这是重复的。有很多关于如何排序的问题。见How to sort an array of objects in java?
标签: java list sorting object arraylist