我有一個簡單的Java POJO,看起來像這樣:有道雙向排序
class MyClass
{
public String getGroup();
public String getTitle();
}
現在我想要做的是首先一個排序由返回值MyClass的POJO的列表getTitle()方法。儘管使用我自己的比較器很容易。但是,我想要的是由getGroup()返回的值相同的實例相互跟隨。現在我所做的就是像
.. compare(MyClass c1, MyClass c2)
{
if (c1.getGroup().compareTo(c2.getGroup()) == 0)
{
return c1.getTitle().compareTo(c2.getTitle());
}
return c1.getGroup().compareTo(c2.getGroup());
}
然而,這段代碼的問題是,它不再是主要由標題排序,因爲我第一次比較組,沒有標題的內容,這樣一組從「B」開始,將以「C」開頭,然後以「C」開頭,儘管其標題可能會先出現。以主題排序的主要方式是什麼,但確保組也是「組合」在一起的?
的樣本數據:
MyClass 1 (group = "A", title="5")
MyClass 2 (group = "B", title="9")
MyClass 3 (group = "B", title="1")
用我以前的代碼將在
MyClass 1 (group = "A", title="5")
MyClass 3 (group = "B", title="1")
MyClass 2 (group = "B", title="9")
結束 - >排序組,然後按標題排序
但我想
MyClass 3 (group = "B", title="1")
MyClass 2 (group = "B", title="9")
MyClass 1 (group = "A", title="5")
- > sor牛逼的稱號,但要確保每個等於組如下彼此,這就是爲什麼仍然MyClass的1標題爲「5」 MyClass的2標題爲「9」後,來... ...
目前尚不清楚你想要什麼。它必須* *主要按標題排序*或*主要按組排序。請提供一些示例數據以及您希望輸出的樣子。 – 2012-01-30 13:17:01
「組」和「標題」之間是否有任何邏輯關係? – UmNyobe 2012-01-30 13:40:00
不是沒有。標題是爲了排序,組是爲了保持秩序(標題後) – anderswelt 2012-01-30 13:44:56