您需要有关Java集合排序的帮助。它给了我这个错误:
Bound mismatch: The generic method sort(List<T>) of type Collections is not applicable for the arguments (List<WifiSSID>).
The inferred type WifiSSID is not a valid substitute for the bounded parameter <T extends Comparable<? super T>>
我的代码如下:
public class WifiSSID {
public String SSIS;
public double id;
}
public class ScanFilterWifiList {
public ScanFilterWifiList(List<WifiSSID> wifiList) {
Collections.sort(wifiList);
//Collections.sort(wifiList, new SortSSIDByid()); tried this also.
}
}
interface Comparator<WifiSSID>
{
int compare(WifiSSID obj1, WifiSSID obj2);
}
class SortSSIDByid implements Comparator<WifiSSID>
{
@Override
public int compare(WifiSSID ssid1, WifiSSID ssid2)
{
int value = 0;
if (ssid1.id > ssid2.id)
value = 1;
else if (ssid1.id < ssid2.id)
value = -1;
else if (ssid1.id == ssid2.id)
value = 0;
return value;
}
}
我做错什么了吗?
您不能对未实现该Comparable
接口的对象列表进行排序。或者说,可以,但你必须提供Comparator
的Collections.sort()
方法。
考虑一下:如何Collections.sort()
在不知道WifiSSID小于或大于另一个WifiSSID的情况下对列表进行排序?
你想用 Collections.sort(wifiList, new SortSSIDByid());
编辑:
您定义了自己的专有Comparator
接口,并在中实现了该专有Comparator接口SortSSIDByid
。Collections.sort()
想要一个实例java.util.Comparator
。它不是您不知道的专有Comparator接口的实例。
问题内容: 我有一个Java集合: 现在在显示列表之前有一个字段,我想按此排序此集合。 有什么办法可以做到吗? 问题答案: 使用比较器: 此外,如果实现,则只需使用 使用JDK 8,语法要简单得多。 更简单 最简单的 显然,初始代码也可以用于JDK 8。
主要内容:1 集合元素的排序,2 Collections sort方法,3 字符串正序排序,4 字符串倒序排序,5 包装类型排序,6 自定义对象排序1 集合元素的排序 我们可以对以下元素进行排序: 字符串对象 包装类对象 用户自定义对象 Collections类提供用于对集合的元素进行排序的静态方法。如果集合元素为Set类型,则可以使用TreeSet。但是,我们无法对List的元素进行排序。Collections类提供用于对List类型元素的元素进行排序的方法。 2 Collections so
问题内容: 我是Java的初学者。请建议可以/应该使用哪些集合来维护Java中的排序列表。我尝试了和,但它们不是我想要的。 问题答案: 这来得很晚,但是JDK中有一个类只是为了获得排序列表。它被命名(与其他Sorted*接口有些混乱)“ ”。它可以排序或使用Comparator。 与 sorted using 的区别在于,通过使用堆数据结构,这将始终保持部分顺序,具有O(log(n))插入性能,而
下面是一个通用搜索算法的实现: 接口: (方括号=弧形括号) 问题出在哪里?我想不通...对泛型参数T也进行了扩展。
问题内容: 如果我有一个简单的字符串列表: 我可以对它进行排序: 但是假设我有一个Person类: 并列出: 我想有时按名称,有时按年龄,有时按国家对它进行排序。 最简单的方法是什么? 我知道我可以实现Comparable接口,但这似乎限制了我只能通过一个特定的属性对其进行排序。 问题答案: 可以使用自定义比较器调用Collections.sort。并且该比较器可以实现为允许以不同的排序顺序进行排
$Eclipse不喜欢后面的add语句,也就是说:ArrayList(SortNames.CelebrityNamesFile)类型中的方法add(SortNames.CelebrityNamesFile)不适用于参数(String) $,然后它不喜欢我的sort语句,也就是说:Bound mismatch:类型集合的泛型方法sort(List T)不适用于参数(ArrayList(sortnam