【发布时间】:2023-04-11 09:15:01
【问题描述】:
我已经开始学习 Java/Android,并且正在尝试收集蓝牙设备的 RSSI 值。我在同一个活动上有 2 个片段,我发现的每个设备都显示在列表视图上,并继续在包含我的对象类的 ArrayList 中收集数据。稍后当我想可视化设备的数据时,我需要将此对象数组列表转换为 ArrayList 以仅获取 RSSI 值并显示在第二个片段上。我的问题是这种转换使我的屏幕非常慢。有什么建议么?谢谢
这就是函数,我觉得它让它变慢了;
public static ArrayList<Double> extractDeviceRSSIOnly(ObjDevice device,
ArrayList<ObjDevice> list)
{
ArrayList<Double> selectedList=new ArrayList<Double>();
if(device!=null&& list!=null) {
if (list.size() > 0) {
for(int i=0;i<list.size();i++)
{
if(list.get(i).get_macAddress().equals(device.get_macAddress())) {
selectedList.add(list.get(i).get_signalStrength());
}
}
}
return selectedList;
}
}
【问题讨论】:
-
我假设
get_macAddress()只是一个返回存储属性的简单函数,或者是否存在需要处理的实际逻辑?另外,你的名单有多长?除了这两件事之外,您的代码对我来说似乎还不错。 -
它只是返回一个字符串属性,后面没有复杂的计算。其他的是,列表大小可以是 100 到 1000 的。
标签: java android object arraylist