Java 如何临时存储部分数据?

Java 如何临时存储部分数据?,java,android,Java,Android,我有部分数据不是按订单来的。让我解释一下: id为1的用户发送数据(“电话号码”),但同时id为78的用户发送另一个数据(“家庭地址”) 所有传入数据都具有相同的接收器 当设置每个id的所有数据时,数据将被发送到mysql数据库并从临时存储中删除 在发送完整数据之前,每个用户id需要填写6个不同的信息 因此,问题是如何使用他们的个人id存储临时数据部分(而不将它们混淆),只有这样我才拥有所有部分,我才能继续执行下一个任务 我应该使用arrayList还是其他什么 编辑(回答重复的建议):我的问题

我有部分数据不是按订单来的。让我解释一下:

id为1的用户发送数据(“电话号码”),但同时id为78的用户发送另一个数据(“家庭地址”)

所有传入数据都具有相同的接收器

当设置每个id的所有数据时,数据将被发送到mysql数据库并从临时存储中删除

在发送完整数据之前,每个用户id需要填写6个不同的信息

因此,问题是如何使用他们的个人id存储临时数据部分(而不将它们混淆),只有这样我才拥有所有部分,我才能继续执行下一个任务

我应该使用arrayList还是其他什么


编辑(回答重复的建议):我的问题有点不同,那里的答案根本帮不了我

您可以创建对象“数据”

class Data {

    private param1,param2,...,param6;


    public Data(){

    }

    /* PARAMS getters */

    /* PARAMS setters */


    public void insert(){
        //insert to database
    }

}
然后使用
HashMap
更新数据:

HashMap<Integer, Data> map = new HashMap<Integer, Data>();

您可以在每次设置某个参数时创建一个侦听器,以指示所有数据都已设置并准备好插入

您可以将其存储在内存中的某个结构中。我会选择一些与活动无关的方法,否则您需要跟踪活动生命周期。例如,您可以使用HashMap将实体名称(即名称、地址等)映射到其值(或者如果您存储单个实体的多个实例,请使用另一个答案中建议的某种数据类)。就我个人而言,我觉得这种方法非常麻烦/混乱,因为您需要将存储与活动分离,或者处理所有活动更改,以避免丢失状态

第二种方法是使用SharedReference。为此,制作一个单独的prefs文件,获取它们(
getSharedReferences(“partial\u data\u dl”,MODE\u PRIVATE)
),将每列存储为prefs中的一个字段,并在将它们提交到数据库之前清除它们。它比把所有东西都存储在内存中更容易,而且速度不应该明显慢

第三个是显而易见的:为什么不在数据进来时更新数据库记录?第一次插入一个只填充了一列的新记录时,每隔一次发出一个更新查询来为新列添加值。这是公认的最重的解决方案,可能不适用于您的用例,但我会尝试一下并测试它。俗话说,过早优化是万恶之源。

可能的重复
Data toUpdate = map.get(id);
toUpdate.setParam...