您好,需要有关 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
to the Collections.sort()
method.
想一想:怎么会Collections.sort()
在不知道某个 WifiSSID 何时小于或大于另一个 WifiSSID 的情况下对列表进行排序?
你想使用Collections.sort(wifiList, new SortSSIDByid());
EDIT:
您定义了自己的专有Comparator
接口,并实现这个专有的比较器接口SortSSIDByid
. Collections.sort()
想要一个实例java.util.Comparator
。不是您专有的比较器接口的实例,它不知道。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)