从arraylist中提取数据并保存它

时间:2016-01-31 14:13:41

标签: java

我试图将我保存的数据保存到我的数组列表中。我想把我在那里保存的id和问题分开保存。这可能吗?例如,我的对象数组列表就是这个

List<Observation> entries = new ArrayList<>();

在其中我保存了一个Int和一个布尔数组。所以它看起来像{1,true}。是否可以提取每个数据并单独保存? id喜欢将ID部分保存在自己的int中。和数组中的布尔值。

好的希望我能更好地解释这一点。条目列表我已经为我保存了两种形式的数据。和int这是一个id和一个布尔数组的true,false是对某些问题的回答。我喜欢把数据拿出来并单独保存。所以像id一样将ID保存为int idData之类的东西,并将布尔数组保存到数组中。所以我可以将这些数据发送到api。 api只需要一个整数和一个arraylist。

所以我试图将条目数据分开并将它们分开保存,因为我需要将这些数据发送到接受int和arraylist的api。这是一个ID和答案(布尔数组)。所以我需要拆分我制作的条目数组列表并取出id和布尔数组并保存它们seperatley所以我可以发送它们。

2 个答案:

答案 0 :(得分:1)

下面你可以找到两个可能解决问题的方法。

使用参数列表

List<Observation> items= new ArrayList<>();
List<Integers> idList = new ArrayList<>();
List<Boolean[]> answersList = new ArrayList<>();
    for(Observation o : items){
        idList.add(o.getID());
        answersList.add(o.getAnswers());
    }

此时你有两个列对等的List对象。从其中一个元素中删除一个元素而不对另一个元素执行相同操作会使数据顺序混乱。

使用地图

我建议使用Map而不是两个paralel列表,因为在我看来,它更实用,更简单,看起来更好。如果您打算使用地图,则可以执行以下操作:

List<Observation> items= new ArrayList<>();
Map<Integer,Boolean[]> data = new HashMap<>();
    for(Observation o : items)
        data.put(o.getID(),o.getAnswers());

然后你可以使用与Map相关的方法,更具体地说,使用HashMap(除非你选择另一个实现)来随意操作数据。

答案 1 :(得分:0)

您可以尝试这样的事情

      List<Observation> entries = new ArrayList<>();

    //Create two seperate lists as per your requirement.
    List<Integer> ids = new ArrayList<>();
    List<Boolean> status = new ArrayList<>();
    for(int i=0;i<entries.size();i++){
      Observation observation = entries.get(i);
      ids.add(observation.getId());  //Here get integer from your Observation object
      ids.add(observation.getStatus());  //Here get boolean value from your Observation object.
    }
  }