gpt4 book ai didi

java - 将对象 ArrayList 转换为双列表的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-01 11:33:19 28 4
gpt4 key购买 nike

我已经开始学习 Java/Android,并且正在尝试收集蓝牙设备的 RSSI 值。我在同一个 Activity 上有 2 个 fragment ,我发现的每个设备都显示在 ListView 上,并继续在保存我的对象类的 ArrayList 中收集数据。稍后,当我想要可视化设备的数据时,我需要将此对象数组列表转换为 ArrayList 以仅获取 RSSI 值并显示在第二个 fragment 上。我的问题是这种转换使我的屏幕速度非常慢。有什么建议么?谢谢

这就是函数,我认为它会使速度变慢;

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(i) 两次来提高效率。 enhanced for将帮助您,并为您提供更清晰的代码。

正如 @Makoto 所建议的,您也可以避免 list.size() > 0 测试。空列表将根本不会迭代。

if (device != null && list != null) {
for (ObjDevice objDevice : list) {
if (objDevice.get_macAddress().equals(device.get_macAddress())) {
selectedList.add(objDevice.get_signalStrength());
}
}
}

关于java - 将对象 ArrayList 转换为双列表的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30243934/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com