java中拼接两个对象集合

Wesley13
• 阅读 421

目标:  根据两个list中每条记录的某个属性是否相同来拼接。

1.首先定义一个字符串

String str = "[{\"ITEMID\":2,\"ITEMNAME\":\"人大常委办公厅\",\"BILLTYPEID\":1,\"BILLTYPENAME\":\"一般缴款书\"},\n" +        " {\"ITEMID\":2,\"ITEMNAME\":\"人大常委办公厅\",\"BILLTYPEID\":3,\"BILLTYPENAME\":\"退付书(微机)\"},\n" +        " {\"ITEMID\":2,\"ITEMNAME\":\"人大常委办公厅\",\"BILLTYPEID\":41,\"BILLTYPENAME\":\"高速公路收费专用票据(500元)\"},\n" +        " {\"ITEMID\":2,\"ITEMNAME\":\"人大常委办公厅\",\"BILLTYPEID\":720,\"BILLTYPENAME\":\"单位手写缴款书(本局)\"},\n" +        " {\"ITEMID\":2,\"ITEMNAME\":\"人大常委办公厅\",\"BILLTYPEID\":721,\"BILLTYPENAME\":\"单位微机缴款书(本局)\"},\n" +        " {\"ITEMID\":2,\"ITEMNAME\":\"人大常委办公厅\",\"BILLTYPEID\":743,\"BILLTYPENAME\":\"收入专用收据(机打)\"}\n" +        "]";2.然后将str先转换成json格式,然后再转换成list1: 代码如下

ObjectMapper mapper = new ObjectMapper();List<Map<String,Object>> conList = null;   conList = mapper.readValue(str, List.class);3.ObjectMapper的使用需要导入jar包或者在pom文件中添加依赖:

<dependency>   <groupId>org.codehaus.jackson</groupId>   <artifactId>jackson-mapper-asl</artifactId>   <version>1.7.1</version></dependency>4.通过mybatis查询表中的数据,用list接收

List<EInvoiceThresholdDTO> list = new ArrayList<EInvoiceThresholdDTO>();list = eInoviceThresholdMapper.selectAll();5.然后通过循环嵌套,对比出BILLTYPEID,如果相同则将表中查出的部分属性通过list的put方法添加到list conList中上完整代码:

@Overridepublic List<Map<String,Object>> selectAll() {    String str = "[{\"ITEMID\":2,\"ITEMNAME\":\"人大常委办公厅\",\"BILLTYPEID\":1,\"BILLTYPENAME\":\"一般缴款书\"},\n" +            " {\"ITEMID\":2,\"ITEMNAME\":\"人大常委办公厅\",\"BILLTYPEID\":3,\"BILLTYPENAME\":\"退付书(微机)\"},\n" +            " {\"ITEMID\":2,\"ITEMNAME\":\"人大常委办公厅\",\"BILLTYPEID\":41,\"BILLTYPENAME\":\"高速公路收费专用票据(500元)\"},\n" +            " {\"ITEMID\":2,\"ITEMNAME\":\"人大常委办公厅\",\"BILLTYPEID\":720,\"BILLTYPENAME\":\"单位手写缴款书(本局)\"},\n" +            " {\"ITEMID\":2,\"ITEMNAME\":\"人大常委办公厅\",\"BILLTYPEID\":721,\"BILLTYPENAME\":\"单位微机缴款书(本局)\"},\n" +            " {\"ITEMID\":2,\"ITEMNAME\":\"人大常委办公厅\",\"BILLTYPEID\":743,\"BILLTYPENAME\":\"收入专用收据(机打)\"}\n" +            "]";    List<EInvoiceThresholdDTO> list = new ArrayList<EInvoiceThresholdDTO>();    list = eInoviceThresholdMapper.selectAll();    ObjectMapper mapper = new ObjectMapper();    List<Map<String,Object>> conList = null;    try {        conList = mapper.readValue(str, List.class);        for (int i=0;i<conList.size();i++){            for (int j=0;j<list.size();j++){                if (conList.get(i).get("BILLTYPEID").toString().equals(list.get(j).getBillTypeID().toString())){                    conList.get(i).put("AGENCY",list.get(j).getAGENCY());                    conList.get(i).put("YEAR",list.get(j).getYEAR());                    conList.get(i).put("WRITEUSER",list.get(j).getWRITEUSER());                    conList.get(i).put("WRITEDATE",list.get(j).getWRITEDATE());                    conList.get(i).put("ISENABLE",list.get(j).getISENABLE());                    conList.get(i).put("ISAUTO",list.get(j).getISAUTO());                    conList.get(i).put("threshold",list.get(j).getThreshold());                }            }        }    } catch (Exception e) {        e.printStackTrace();    }    return conList;}
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java 复制Map对象(深拷贝与浅拷贝)
java复制Map对象(深拷贝与浅拷贝)CreationTime2018年6月4日10点00分Author:Marydon1.深拷贝与浅拷贝  浅拷贝:只复制对象的引用,两个引用仍然指向同一个对象
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java8新特性
Stream将List转换为Map,使用Collectors.toMap方法进行转换背景:User类,类中分别有id,name,age三个属性。List集合,userList,存储User对象1、指定keyvalue,value是对象中的某个属性值。 Map<Integer,StringuserMap1userList.str
DaLongggggg DaLongggggg
3年前
python百题大冲关-确定字符串是否是另一个的旋转
挑战介绍实现一个算法来识别一个字符串s2是否是另一个字符串s1的旋转。旋转的解释如下:如果将s1从某个位置断开,拆分成两个字符串(可能有一个为空字符串),再将这两个字符串调换顺序后拼接起来,能够得到s2,那么说字符串s2是字符串s1的旋转。本次挑战中,你需要在rotation.py文件中补充函数is_subst
Stella981 Stella981
3年前
Lua的String字符串拼接
每个语言都会遇到字符串拼接的问题。上回说到C的字符串拼接Concat,我们知道C中拼接许多字符串一般不用“”号,因为每次操作都会产生一个临时的字符串。所以C里面就提供了StringBuilder可变字符串来拼接,直到最后tostring的时候才会产生最终的string字符串。Lua语言里面默认是” ..“两个英文点号来表示字符串的拼接。但
Wesley13 Wesley13
3年前
Java的字符串连接符(+)
在Java中字符串是一个常用的东西,而其一个常用的操作是字符串的拼接,Java对此提供了一种非常直观的操作方式——即操作符。Stringstr0"a";Stringstr1str0"b";如上的程序片段就实现了一个字符串的拼接,可以看到整个描述非常简洁,一目了然。学习Java的时候,这是
Wesley13 Wesley13
3年前
ES6——字符串
1、多了两个方法1)startsWith2)endsWith2、模板字符串(\..\)—— 方便字符串连接   \反单引号1)可以直接把表达式塞进去&{表达式}字符串拼接2)可以不用加‘\\’折行3、多了两个方法1)startsWith2)endsWith/1、startsWith
LeeFJ LeeFJ
1年前
Foxnic-SQL (13) —— 外部SQL与SQL模版
首先,大多数时候,我们的第一反应是用字符串去拼接SQL语句,这说明字符串拼接方式其实是最直观的。其次,使用对象化的方式拼接SQL,还是有其局限性,大量的SQL文本也不宜直接写在Java类中。所以,FoxnicSQL将原本要写在Java类中的SQL语句放到一个外部文件中,每个语句用一个ID去标识,在SQL执行时,只要指定ID就可以了。在此基础上,FoxnicSQL加入了模板引擎、SQL语句置换、热加载等特性,使其变得更加好用。
Json格式Java封装天猫商品详情数据接口,实现海量商品采集业务
根据天猫的API文档,获取天猫商品详情的API是通过发送Http/Post/GET请求,其中itemID是具体的商品ID。以下是Python和Java封装获取天猫商品详情API(复制Taobaoapi2014)的示例代码:1.请求方式:HTTPPOSTGE
达里尔 达里尔
11个月前
给数组添加新数据,判断数据是否重复
多选要进行数组拼接,希望判断往原数组里添的新数据是否重复,封装个简易方法languageconstdataArrayname:'aaa',id:1,name:'bbb',id:2;constnewDataname:'ccc',id:2;//要添加的新数