Android 集合。排序

Android 集合。排序,android,Android,Collections.sort(应用程序、新的ResolveInfo.DisplayNameComparator(管理器)); 这是一个排序函数。第一个参数是要排序的数组。 为什么需要第二个参数?第二个参数可以做什么?第二个参数是为了提供自定义函数来比较对象 Collections.sort(应用程序、新的ResolveInfo.DisplayNameComparator(管理器)) 这似乎使用了一个比较器,通过显示名称来比较对象。第二个参数是,您可以提供用于比较对象的自定义函数 Collec

Collections.sort(应用程序、新的ResolveInfo.DisplayNameComparator(管理器)); 这是一个排序函数。第一个参数是要排序的数组。 为什么需要第二个参数?第二个参数可以做什么?

第二个参数是为了提供自定义函数来比较对象

Collections.sort(应用程序、新的ResolveInfo.DisplayNameComparator(管理器))

这似乎使用了一个比较器,通过显示名称来比较对象。

第二个参数是,您可以提供用于比较对象的自定义函数

Collections.sort(应用程序、新的ResolveInfo.DisplayNameComparator(管理器))


这似乎使用了一个比较器,通过显示名称来比较对象。

apps
是一个
ResolveInfo
对象列表
ResolveInfo
不可比较,这意味着因为它没有实现
Compariable
接口,所以没有关于如何比较两个
ResolveInfo
对象的“规则”<代码>排序(列表)方法要求列表中的对象具有可比性:

public static <T extends Comparable<? super T>> void sort(List<T> list)

apps
ResolveInfo
对象的列表
ResolveInfo
不可比较,这意味着因为它没有实现
Compariable
接口,所以没有关于如何比较两个
ResolveInfo
对象的“规则”<代码>排序(列表)方法要求列表中的对象具有可比性:

public static <T extends Comparable<? super T>> void sort(List<T> list)

在进一步提问之前,你应该接受一些答案!在进一步提问之前,你应该接受一些答案!数组应用程序包含名称和图标。所以我想知道为什么我们需要第二个参数?@zhen01.wang:不,“数组应用程序”没有“包含名称和图标”<代码>应用程序是一个
列表
。否则,您的代码将无法编译。@commonware:No,DisplayNameComparator可以是ResolveInfo的静态内部类,因此您无法分辨模板是什么。数组应用程序包含名称和图标。因此我想知道为什么需要第二个参数?@zhen01.wang:不,“数组应用程序”不“包含名称和图标”<代码>应用程序是一个
列表
。否则,您的代码将无法编译。@Commonware:否,DisplayNameComparator可以是ResolveInfo的静态内部类,因此您无法判断模板是什么。