[问题] 想请问Hashtable<Key,Values>的问题

楼主: freedom74569   2015-12-10 17:41:43
发出求救信号~
我有一个Hashtable<Key,Values>
里面的Values一直更新
想要判断Values连续10次相同就remove掉这个device的array
我有写出大概意思的code不过不知道怎么下手,因我的mRssi会一直更新
public ArrayList<BluetoothDevice> mLeDevices = new ArrayList<BluetoothDevice>();
public ArrayList<byte[]> mRecords = new ArrayList<byte[]>();
public Hashtable<String, Integer> mRssi = new Hashtable<>();
public void addDevice(BluetoothDevice device, int rssi, byte[] scanRecord) {
if (!mLeDevices.contains(device)) {
mLeDevices.add(device);
mRecords.add(scanRecord);
}
mRssi.put(device.getAddress(), rssi);
/** 以下为意识code */
ArrayList<Integer> rssiArrayList = new ArrayList<Integer>(mRssi.values());
int lastNum = rssiArrayList.get();
int count = 0;
/** 从头开始loop */
for (int i = 0; i < rssiArrayList.size(); i++) {
/** 如果当前值等于最后值 */
if(rssiArrayList[i]==lastNum){
count++;
if(count>=10){
/** 如果连续10次rssi相同就移除 */
mLeDevices.remove();
}
}
/** 如果不相等的话 */
else {
lastNum=rssiArrayList[i];
count = 1;
}
}
Log.e("mRssi", String.valueOf(mRssi));
}
作者: mraaa (重新出发....)   2015-12-11 00:32:00
确定一下,你是希望同一个Device相同rssi 出现10次才会移除吗?
作者: eieio (好多目标)   2015-12-11 05:39:00
做一个新的 class,就两个 member: lastNum 和 count

Links booklink

Contact Us: admin [ a t ] ucptt.com