嗨我需要任何方法或解釋如何我們可以在java中排列多個列值。 輸出應該類似於MySQL中的多列順序輸出。使用java的多列次序
澄清請查看以下鏈接 http://www.dynamicdrive.com/forums/showthread.php?19797-ORDER-BY-Multiple-Columns
嗨我需要任何方法或解釋如何我們可以在java中排列多個列值。 輸出應該類似於MySQL中的多列順序輸出。使用java的多列次序
澄清請查看以下鏈接 http://www.dynamicdrive.com/forums/showthread.php?19797-ORDER-BY-Multiple-Columns
比方說,你的對象是這樣的:
public DataObject {
public String name;
public int age;
public String hairColour;
}
比方說,你要根據年齡,那麼頭髮的顏色,然後名字對它們進行排序。你可以創建一個比較器如下:
public DataObjectComparator extends Comparator<DataObject> {
public int compare(DataObject o1, DataObject o2) {
// if the age is the same
if(o1.age == o2.age) {
// if the hair colour is the same
if(o1.hairColour.compareTo(o2.hairColour) == 0) {
// return the name comparison
return o1.name.compareTo(o2.name);
} else { // else return the hair colour comparison
return o1.hairColour.compareTo(o2.hairColour);
}
} else { // else return the age comparison
return o1 < o2 ? -1 : 1;
}
}
}
您可以按使用下面的示例比較多個屬性的ArrayList。
public class CustomeClass implements Comparator<CustomeObject> {
public int compare(CustomeObject o1, CustomeObject o2) {
int value1 = o1.prop1.compareTo(o2.prop1);
if (value1 == 0) {
int value2 = o1.prop2.compareTo(o2.prop2);
if (value2 == 0) {
return o1.prop3.compareTo(o2.prop3);
} else {
return value2;
}
return value1;
}
}
基本上,它繼續比較類的每個連續屬性,只要比較屬性到目前爲止相等(== 0)。
你能提供你的對象結構的例子嗎?可能只是一個比較器,足以滿足您的需要 – fluminis
我正在使用Cassandra數據庫,並且此查詢不支持Cassandra