作者freedom74569 (莫急莫慌莫害怕)
看板java
标题[问题] 想请问Hashtable<Key,Values>的问题
时间Thu Dec 10 17:41:43 2015
发出求救信号~
我有一个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));
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.161.11.105
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1449740510.A.347.html
1F:推 mraaa: 确定一下,你是希望同一个Device相同rssi 出现10次才会 12/11 00:32
2F:→ mraaa: 移除吗? 12/11 00:32
→你好,就是我的蓝芽在扫瞄,
然後要显示在RecyclerView上,
当我扫瞄到的时候添加进去,
可是当我把蓝芽装置的电池拔开的时候,
没侦测到了,
需要自动remove掉那个item,
希望有simple code可以提供~
已经用尽我自己的方式还是不行真是不好意思呢
3F:→ eieio: 做一个新的 class,就两个 member: lastNum 和 count 12/11 05:39
有比较具体一点的code吗,不好意思
※ 编辑: freedom74569 (61.230.134.93), 12/11/2015 07:39:00