私は車の名前のリストを持っています。このリストには車のオブジェクトがいくつかあります。すべてのオブジェクトの値は互いに異なります。ここにあるすべてのオブジェクトにユニットの名前を持つカスタムフィールドがあり、ユニットにはunitTypeという名前の別のフィールドがあります。「T20」、「VT11」などです。 この車を並べ替えたいunitTypeTypeのように: 車(0).getUnit()。getUnitType()。equals( "T20")最初にすべての値をソートし、次に他の "VT11"を選択し、次に他のすべて... どうすればいいですか?ここにJavaの任意の適切なメソッドですか?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;
}
}
車のリスト: 一覧車。
コンパレータを使用して、それを上書きして独自の並べ替えタイプを定義することができます。最後のinterまたは文字列で並べ替えることができます。 Collection.sort(whattosor、新しいComparator)....... –
タイトルで言うように**配列**を持っているのか、質問で言うように 'List'ですか? (配列は 'List'ではなく、' ArrayList'は 'List'で配列ではありません)。 – Jesper
これは複製です。並べ替える方法について質問する多くの質問があります。 「Javaでオブジェクトの配列をソートする方法」(http://stackoverflow.com/q/18895915/217324)を参照してください。 –