Android 如何根据信号对WifiManager的扫描结果进行排序?

Android 如何根据信号对WifiManager的扫描结果进行排序?,android,sorting,android-wifi,wifimanager,Android,Sorting,Android Wifi,Wifimanager,我在看stackoverflow,了解如何根据信号强度对列表进行排序(在WifiManager库中称为level)。我看到您可以使用函数Collection.sort()。但是,我很困惑,我想通过级别对列表进行排序,其中最高的数字在开头,最低的在底部 如您所见,它在每个对象中返回一些内容: 我没有那么高,但我知道我可以通过这样做来达到这个水平 for (int i=0; i < scanList.size(); i++) { System.out.println(scanList.

我在看stackoverflow,了解如何根据信号强度对列表进行排序(在WifiManager库中称为
level
)。我看到您可以使用函数
Collection.sort()
。但是,我很困惑,我想通过
级别对列表进行排序,其中最高的数字在开头,最低的在底部

如您所见,它在每个对象中返回一些内容: 我没有那么高,但我知道我可以通过这样做来达到这个水平

for (int i=0; i < scanList.size(); i++) {
    System.out.println(scanList.get(i).level); // Prints the level for each access point
}
for(int i=0;i

WifiManager myWifiManager;
myWifiManager=(WifiManager)getSystemService(WIFI_服务);
myWifiManager.startScan();
List scanList=myWifiManager.getScanResults();
集合。排序(扫描列表);
您需要将a传递给

类信号\u强度\u比较器实现比较器{
@凌驾
公共整数比较(扫描结果扫描0,扫描结果扫描1){
返回scan0.level-scan1.level;
}
}
现在将其传递到Collection.sort:

WifiManager myWifiManager;
myWifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
myWifiManager.startScan();
List<ScanResult> scanList = myWifiManager.getScanResults();
Collections.sort(scanList,new Signal_Strength_Comparator());
WifiManager myWifiManager;
myWifiManager=(WifiManager)getSystemService(WIFI_服务);
myWifiManager.startScan();
List scanList=myWifiManager.getScanResults();
排序(扫描列表,新的信号强度比较器());
class Signal_Strength_Comparator implements Comparator<ScanResult> {
    @Override
    public int compare(ScanResult scan0, ScanResult scan1) {
        return scan0.level-scan1.level;
    }
}
WifiManager myWifiManager;
myWifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
myWifiManager.startScan();
List<ScanResult> scanList = myWifiManager.getScanResults();
Collections.sort(scanList,new Signal_Strength_Comparator());