【问题标题】:merging data from different array list classes with different instances合并来自具有不同实例的不同数组列表类的数据
【发布时间】:2014-08-29 09:16:15
【问题描述】:

我有两个具有不同实例的不同数组列表类,即

// Claims.java arraylist 类中的数据

    List<Claim> list1 = new ArrayList<Claim>(claims.values());

打印出来

{
  "claims": [
    {
      "id": 98879,
      "Names": "Victor xxx"
    },
    {
      "id": 80790,
      "Names": "Mary xxx"
    }
   ]
}

//来自ServiceTag.java arraylist类的数据

List<ServiceTag> list2 = new ArrayList<ServiceTag>(servicetag.values());

打印出来

{
         "serviceTags": [
        {
          "quantity": 1,
          "claimid": 98879,
          "serviceType": pharmacy,
          "cost": 100
        },
        {
          "quantity": 1,
          "claimid": 80790,
          "serviceType": treatment,
          "cost": 400
        }
      ]
}

我想合并这两个列表并根据claimid打印输出,即得到类似的东西

{
  "claims": [
    {
      "id": 98879,
      "Names": "Victor xxx",
      "serviceTags": 
        {
          "quantity": 1,
          "claimid": 98879,
          "serviceType": pharmacy,
          "cost": 100
        }
    },
    {
      "id": 80790,
      "Names": "Mary xxx",
      "serviceTags": 
        {
          "quantity": 1,
          "claimid": 80790,
          "serviceType": treatment,
          "cost": 400
        }
    }
   ]
}

【问题讨论】:

  • 实际上,您似乎使用了一些 JSON 库,因为 ArrayList 上的普通 toString() 不会给出该输出。请同时提供该信息。

标签: java class arraylist merge


【解决方案1】:

听起来您想要每个ClaimServiceTag(s) 列表。所以,修改Claim 并添加类似的内容,

private List<ServiceTag> serviceTags = new ArrayList<>();
public List<ServiceTag> getServiceTags() {
  return serviceTags;
}
public void addServiceTag(ServiceTag st) {
  serviceTags.add(st);
}
public void addServiceTags(Collection<ServiceTag> sts) {
  serviceTags.addAll(sts);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多