[問題] 想請問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