Collections.sort(應用程序,新的ResolveInfo.DisplayNameComparator(經理)); 這是一個排序函數。第一個參數是一個要排序的數組。 爲什麼我們需要第二個參數?第二個參數可以做什麼?Collections.sort
回答
Sort第二個參數是Comparable這樣你就可以比較的對象提供自定義功能。
Collections.sort(apps,new ResolveInfo.DisplayNameComparator(manager));
看來這使用比較器,通過顯示名稱比較對象。
陣列的應用程序包含姓名和icons.So我困惑爲什麼我們需要第二個參數? – 2011-05-04 14:09:49
@ zhen01.wang:不,「數組應用程序」不包含名稱和圖標。 'apps'是一個'List
@CommonsWare:沒有,DisplayNameComparator可以是靜態內部類ResolveInfo的,所以你分不清什麼是模板。 – 2011-05-04 15:15:51
apps
是ResolveInfo
對象的列表。 ResolveInfo
不是Comparable
,這意味着因爲它不實現Comparable
接口,所以沒有關於如何比較兩個ResolveInfo
對象的「規則」。 sort(List<T> list)
方法需要在列表中的對象是可比較:
public static <T extends Comparable<? super T>> void sort(List<T> list)
DisplayNameComparator
定義瞭如何通過應用的顯示名稱它們代表比較ResolveInfo
對象的邏輯。
的源代碼:
public static class DisplayNameComparator
implements Comparator<ResolveInfo> {
public DisplayNameComparator(PackageManager pm) {
mPM = pm;
mCollator.setStrength(Collator.PRIMARY);
}
public final int compare(ResolveInfo a, ResolveInfo b) {
CharSequence sa = a.loadLabel(mPM);
if (sa == null) sa = a.activityInfo.name;
CharSequence sb = b.loadLabel(mPM);
if (sb == null) sb = b.activityInfo.name;
return mCollator.compare(sa.toString(), sb.toString());
}
private final Collator mCollator = Collator.getInstance();
private PackageManager mPM;
}
- 1. Collections.sort()in Java
- 2. Arrays.parallelSort VS Collections.sort
- 3. Collections.sort不工作
- 4. 提高Collections.Sort
- 5. 使用Collections.sort
- 6. 錯誤使用Collections.sort
- 7. IllegalArgumentException對Collections.sort()方法
- 8. Collections.sort在List <Point2D.Double>
- 9. Collections.sort不工作的Java 1.7
- 10. Collections.sort不能正常工作
- 11. 通過JNI調用Collections.sort
- 12. 綁定不匹配collections.sort
- 13. Unckecked方法調用上Collections.sort()
- 14. 排序JodaTime名單由collections.sort
- 15. collections.sort沒有排序arraylist
- 16. 的Android - Collections.sort - 顯示java.lang.NullPointerException
- 17. 我如何取消Collections.sort()
- 18. Java - 使用Collections.sort排序()
- 19. SortedSet或任何Collection然後Collections.sort()?
- 20. Collections.sort沒有對數據進行排序
- 21. Collections.sort()的正確轉換是什麼?
- 22. 如何結合兩個Collections.sort函數
- 23. Android的Collections.sort - 不能正常工作
- 24. Collections.sort沒有編譯時間錯誤
- 25. 的Java Collections.sort(),即使媲美聲明
- 26. 如何在Android中使用Collections.sort()?
- 27. Java Collections.sort()不包括一系列字符
- 28. 需要幫助將Java泛型傳遞給Collections.sort()
- 29. 無法排序使用Collections.sort一個數組列表,可比
- 30. 找不到合適的方法Collections.sort(列表)
你應該問更多的問題之前接受一些答案! – MobileCushion 2011-05-04 14:02:07