java中拼接两个对象集合
目标: 根据两个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中
上完整代码:
@Override
public 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;
}
java中拼接两个对象集合的更多相关文章
- Java中对比两个对象中属性值[反射、注解]
在Java中通常要比较两个对象在修改前与修改后的值是否相同,一般我们采用的是反射技术获取对象的get方法[或其他的方法]获取值并做比较.如果系统将修改的属性名称也显示出来,这样就能更直观的显示类中的哪 ...
- javascript中对两个对象进行排序 和 java中的两个对象排序
javascript中的对象数组排序 一 定义一个对象数组 var text = [{"name":"张","age":24},{" ...
- Java 中判断两个对象是否相等
由于每次实例化一个对象时,系统会分配一块内存地址给这个对象,而系统默认是根据内存地址来检测是否是同一个对象,所以就算是同一个类里实例化出来的对象它们也不会相等. public class Transp ...
- java中new两个对象,在堆中开辟几个对象空间
内存堆中有两个对象,两个对象里都有独立的变量.p1 p2指向的不是同一个内存空间. 也可以这样描述引用p1,p2指向两个不同的对象.
- java中判断两个对象是否相等
package ceshi.com.job; import java.util.ArrayList; import java.util.Arrays; import java.util.List; p ...
- java中拼接两个数组
int a[]={1,2,3,2}; int b[]={4,2,90,8,98}; int[] d3 = new int[a.length + b.length]; System.arraycopy( ...
- 【JAVA零基础入门系列】Day11 Java中的类和对象
今天要说的是Java中两个非常重要的概念--类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外观特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征 ...
- 深入理解Java中的不可变对象
深入理解Java中的不可变对象 不可变对象想必大部分朋友都不陌生,大家在平时写代码的过程中100%会使用到不可变对象,比如最常见的String对象.包装器对象等,那么到底为何Java语言要这么设计,真 ...
- Java程序设计基础笔记 • 【第7章 Java中的类和对象】
全部章节 >>>> 本章目录 7.1 理解类和对象 7.1.1 对象 7.1.2 抽象与类 7.1.3 类与对象的关系: 7.2 Java中的类和对象 7.2.1 类的定义 ...
随机推荐
- Java 模拟面试题
1.面向对象的特点 继承,封装,多态 2.对象和类的区别是什么? 对象是对客观事物的抽象,类是对对象的抽象.类是一种抽象的数据类型,它们的关系是,对象是类的实例,类是对象的模板. 3.静态成员和实例成 ...
- Java覆盖
Java的覆盖: 源代码: package dijia;class Parent1{ void f() { System.out.println("迪迦奥特曼1"); } void ...
- ionic框架使用步骤
nodejs下载:https://npm.taobao.org/mirrors/node一.全局安装ionic: npm install -g cordova ionic 如果安装失败: npm in ...
- C语言函数的存储类别
函数默认的隐含存储类型是extern auto:只能用于局部变量 extern:允许被其他文件调用 static:只能被本源程序文件调用
- 全文检索的Demo
用到lucene版本为6.3.0版本,利用的分词器为IKAnalyzer分词器,该分词对中文有较好的支持.关于支持lucene的6.xx以上的IkAnalyzer分词jar包下载地址:https:// ...
- 关于ajax请求跨域问题
jQuery中的异步请求跨域的方法: xhrFields: {withCredentials: true} 当设置为 true时,表示允许跨域: false时,表示禁止跨域
- RSA加密解密实现(JAVA)
1.关于RSA算法的原理解析参考:http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html 2.RSA密钥长度.明文长度和密 ...
- iOS 添加第三方字体
有时候根据UI的设计,我们需要添加第三方字体到工程中,实现特殊的效果. 一,把第三方字体包导入工程 二,在info.plist文件中添加Fonts provided by application 类型 ...
- tofile和fromfile数组内建函数
numpy教程:基本输入输出和文件输入输出Input and output 使用数组的方法函数tofile可以方便地将数组中数据以二进制的格式写进文件.tofile输出的数据没有格式,因此用numpy ...
- Vagrant 创建虚拟环境
1. 添加box vagrant box add --name centos6.8/cms boxname.box 2.初始化admin环境 vagrant init centos6.8/cms ad ...