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 类的定义 ...
随机推荐
- GIS中的引擎:地图引擎
什么是地图引擎?它和地图软件有什么区别? 引擎一词是英文单词engine的音译,通常指发动机,就是动力输出设备.诸如汽车.轮船.飞机的动力提供的核心设备就是引擎.IT领域中,常听说的有搜索引擎.图形引 ...
- Ansible 小手册系列 十四(条件判断和循环)
条件判断 When 语句 在when 后面使用Jinja2 表达式,结果为True则执行任务. tasks: - name: "shut down Debian flavored syste ...
- OpenRASP安装使用教程
一.说明 1.1 RASP和WAF的区别 WAF,Web Application Firewall,应用防火墙.其原理是拦截原始http数据包,然后使用规则对数据包进行匹配扫描,如果没有规则匹配上那就 ...
- vscode sass live compiler
{ "liveSassCompile.settings.formats": [{ "format": "expanded", "e ...
- 二十六. Python基础(26)--类的内置特殊属性和方法
二十六. Python基础(26)--类的内置特殊属性和方法 ● 知识框架 ● 类的内置方法/魔法方法案例1: 单例设计模式 # 类的魔法方法 # 案例1: 单例设计模式 class Teacher: ...
- boot项目swagger接口调试工具默认访问路径
今天第一次接触boot项目,项目里集成了swagger接口调试工具,以前写项目的时候在swagger 文件夹里可以找到访问路径,换成boot项目以后找不到swagger文件夹了,百度了一下,boot项 ...
- 操作系统の实验四 windows中线程的创建和同步控制
摘要: 1.创建信号量 HANDLE CreateSemaphore( LPSECURITY_ATTIBUTES lpSemaphoreAttributes, LONG lInitialCount; ...
- Tensorflow实战系列之一:《Tensorflow实现自己的图像分类》
最近做GAN的实验,刚好有一批二分类的数据集,心血来潮想着也来试一下Tensorflow的实验.并且会尝试些不同网络的效果,重点在于动手尝试,加油~~ 首先介绍下我的数据集,简单的男性和女性,分别存在 ...
- Selenium+Eclipse+Python 环境搭建
第一步:安装Python 根据下面的地址,直接一键安装,全部默认方式. 下载地址:http://www.python.org/ftp/python/2.7.5/python-2.7.5.msi 安装到 ...
- Travel notes in Vietnam
I‘m back:) For preparing IELTS exam, I haven't written article for over 70 days. It's a good exper ...