2012-09-22 83 views
0

我正在根據客戶端提供的HTML在UI上顯示數據,並且我在這裏以某種方式觸發了數據。 這是我需要顯示的UI數據基於某些屬性對ArrayList進行排序

  1. 風格
  2. swatchColour
  3. 尺寸1
  4. siz2

我在下面的順序

  1. 獲取數據風格
  2. size2個
  3. swatchColour
  4. 尺寸1

可以是數據可以進來其他排序,但我需要在第一個塊中示出的方式來顯示數據,我不能改變數據被返回,該方式API不在我的控制之下,所以我留下了一個選擇,根據我的優先級列表對數據進行排序,並將其發送到UI,以便我可以顯示它。

使用以下代碼

Collections.sort(string,Collections.reverseOrder()); 

它在以下順序

  1. 風格
  2. swatchColour
  3. size2個
  4. 尺寸1
排序數據

所以它應該像size2那樣做的方式是在size1之前完成的。我不確定我應該寫什麼類型的比較器,或者我應該在自定義比較器中檢查這個size1和size2字符串,並將其餘的數據保留下來它正在排序? 或者有什麼辦法想創建我的排序列表,這樣,我可以用它來列表

排序Eidt

我更感興趣的排序功能,像是人的方式size1至size2個如String的方式size1應該size2應該晚點來。

任何建議都是值得歡迎的。

+1

你需要什麼['Collections.sort(List data,Comparator comp)'](http://developer.android.com/reference/java/util/Collections.html#sort(java.util.List% 3CT%3E,%20java.util.Comparator%3C?%20super%20T%3E))方法。 –

+0

@AleksG:我同意這一點,但你如何將這兩個字符串與數字進行比較?我們是否需要使用特定的名稱來檢查它們? –

+0

目前尚不清楚你想要做什麼。這些數據是否針對每個商品/產品單獨進入,而您只想知道如何爲大小變量對不同的值進行排序?或者你是否試圖通過考慮所有這些變量來對產品/項目對象列表進行排序? – Bobulous

回答

1

只需創建自己的比較器並在那裏設置自己的自定義規則。

java不能有比較字符串的所有可能的規則,因爲它們有無數個。

+0

我的問題是更多的如何做到這一點?我是否需要創建我的單詞列表或者是否有一種方法,我可以用人類方式對這些字符串進行排序,如'size1'應該位於'size2'之前 –

+0

否,您應該弄清楚您希望的規則(算法)是什麼比較 。爲了做到這一點,請仔細檢查每個字符串的字符,並根據哪些字符被認爲是「較大」來決定何時返回-1/0/1。以下是使用比較器作爲整數的示例:http://www.vogella.com/blog/2009/08/04/collections-sort-java/。對於字符串也可以做類似的事情。 –

相關問題