Java 在Firebase上编写ArrayList比for循环更好吗?

Java 在Firebase上编写ArrayList比for循环更好吗?,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我现在通过Android应用程序连接到一个BLE设备,并将接收到的数据添加到ArrayList中。当按下按钮时,我正在将此ArrayList中的数据写入Firebase。但是,我想知道是否有更好的方法来执行写入过程,因为当我按下按钮并开始写入时,ArrayList的大小可能会很大。以下是我的代码: List<HashMap> dataBufferList = new ArrayList(); HashMap<String, String> data = new Hash

我现在通过Android应用程序连接到一个BLE设备,并将接收到的数据添加到ArrayList中。当按下按钮时,我正在将此ArrayList中的数据写入Firebase。但是,我想知道是否有更好的方法来执行写入过程,因为当我按下按钮并开始写入时,ArrayList的大小可能会很大。以下是我的代码:

List<HashMap> dataBufferList = new ArrayList();

HashMap<String, String> data = new HashMap<>();
data.put("HR", ","80");
data.put("GPS","20.75,56.98");
data.put("Time", getCurrentTime(sdf)); 
dataBufferList.add(data);

for(int  i = 0 ; i < dataBufferList.size();++i){
myRef.push().setValue(dataBufferList.get(i));
}
dataBufferList.clear();
List-dataBufferList=new-ArrayList();
HashMap数据=新的HashMap();
数据。投入(“HR”、“80”);
数据。put(“GPS”,“20.75,56.98”);
data.put(“Time”,getCurrentTime(sdf));
添加(数据);
对于(int i=0;i
什么是“更好”是主观的。但是如果您想在一次调用中发送整个更新,可以使用
updateChildren()

List-dataBufferList=new-ArrayList();
HashMap updates=新建HashMap();
HashMap数据=新的HashMap();
数据。投入(“HR”、“80”);
数据。put(“GPS”,“20.75,56.98”);
data.put(“Time”,getCurrentTime(sdf));
添加(数据);
对于(int i=0;i
这与您所做的操作之间的性能差异将是最小的,因为所有请求都已经通过单个连接进行了管道传输(请参阅)。但是,如果所有数据都属于同一个数据,那么通过一次调用发送这些数据可能会允许您在服务器上执行额外的验证

List<HashMap> dataBufferList = new ArrayList();

HashMap<String, Object> updates = new HashMap<>();

HashMap<String, String> data = new HashMap<>();
data.put("HR", ","80");
data.put("GPS","20.75,56.98");
data.put("Time", getCurrentTime(sdf)); 
dataBufferList.add(data);

for(int  i = 0 ; i < dataBufferList.size();++i){
    updates.put(myRef.push().getKey(), dataBufferList.get(i))
}
myRef.updateChildren(updates);
dataBufferList.clear();