我想對物件進行排序,并且我已經以兩種方式應用了該方法,但是沒有一個有效。列印 arraylist 的內容時,元素按照它們插入的順序排列,而不是按字典順序排序。
我確實在stackoverlow中做過研究:
如果它有效并且您想要對任何事情進行解釋,我可以嘗試詳細解釋它!我希望它有所幫助。
uj5u.com熱心網友回復:
您可以嘗試將此代碼添加到您的
sortPue()方法中:public void sortPue() { Collections.sort(pue_ArrayList, new Comparator<Pue>() { public int compare(Pue pp1, Pue pp2) { return pp1.toString().compareTo(pp2.toString()); } }); }實作時
Comparator,您必須指定要比較的型別,在這種情況下有<Pue>. 然后,我們必須為該compare方法添加一個實作,傳遞兩個要比較的物件參考。最后,使用String'scompareTo方法對串列進行排序。Collections.sort接受2個引數:- 要排序的串列;
- 比較器來確定串列的順序。空值表示應使用元素的自然順序。
字串
compareTo回傳:0如果引數字串等于該字串的值;less than 0如果此字串按字典順序小于字串引數,則為一個值;greater than 0如果此字串按字典順序大于字串引數,則為一個值。
uj5u.com熱心網友回復:
乍一看,這可能是問題的根源。
Pue tempPue = pue_ArrayList.get(i); pue_ArrayList.set(i, pue_ArrayList.get(j)); pue_ArrayList.set(i, tempPue);所以你取出第 i 個元素,將第 i 個元素設定為其他元素,然后將第 i 個元素設定回原來的樣子。最終結果:沒有任何改變。
'i' 的最后一次使用可能應該是 'j',但我沒有詳細分析這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/441048.html下一篇:按重復元素對串列進行排序
