记一次Java List重复数据的问题
来源:互联网 发布:centos6 搭建php环境 编辑:程序博客网 时间:2024/06/05 08:01
贴上原代码
List<ReportDataModel.Data> data = new ArrayList<>();ReportDataModel.Data reportData = = new ReportDataModel().new Data(); for (TimeAndValue timeAndValue : timeAndValueList) { reportData.setName(indexType.getName()); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(timeAndValue.getTime()); if (model.getType() == QUERY_TYPE_YEAR) {// 年 reportData.setTime(SDF_YEAR.format(cal.getTime())); } else if (model.getType() == QUERY_TYPE_MONTH) {// 月 reportData.setTime(SDF_YEAR_MONTH.format(cal.getTime())); } else if (model.getType() == QUERY_TYPE_WEEK) {// 周 reportData.setTime(cal.get(Calendar.YEAR) + "-" + cal.get(Calendar.DAY_OF_WEEK)); } else if (model.getType() == QUERY_TYPE_DAY) {// 日 reportData.setTime(SDF_YEAR_MONTH_DAY.format(cal.getTime())); } else if (model.getType() == QUERY_TYPE_HOUR) {// 小时 reportData.setTime(SDF_YEAR_MONTH_DAY_HOUR.format(cal.getTime())); } if (timeAndValue.isDouble()) { reportData.setData(timeAndValue.getDoubleValue()); } else if (timeAndValue.isLong()) { reportData.setData((double) timeAndValue.getLongValue()); } data.add(reportData); }
贴上改正后的代码
List<ReportDataModel.Data> data = new ArrayList<>();ReportDataModel.Data reportData = null; for (TimeAndValue timeAndValue : timeAndValueList) { reportData = new ReportDataModel().new Data(); reportData.setName(indexType.getName()); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(timeAndValue.getTime()); if (model.getType() == QUERY_TYPE_YEAR) {// 年 reportData.setTime(SDF_YEAR.format(cal.getTime())); } else if (model.getType() == QUERY_TYPE_MONTH) {// 月 reportData.setTime(SDF_YEAR_MONTH.format(cal.getTime())); } else if (model.getType() == QUERY_TYPE_WEEK) {// 周 reportData.setTime(cal.get(Calendar.YEAR) + "-" + cal.get(Calendar.DAY_OF_WEEK)); } else if (model.getType() == QUERY_TYPE_DAY) {// 日 reportData.setTime(SDF_YEAR_MONTH_DAY.format(cal.getTime())); } else if (model.getType() == QUERY_TYPE_HOUR) {// 小时 reportData.setTime(SDF_YEAR_MONTH_DAY_HOUR.format(cal.getTime())); } if (timeAndValue.isDouble()) { reportData.setData(timeAndValue.getDoubleValue()); } else if (timeAndValue.isLong()) { reportData.setData((double) timeAndValue.getLongValue()); } data.add(reportData); }
请大家注意看原代码这一行:ReportDataModel.Data reportData = = new ReportDataModel().new Data(); 以及对比新代码ReportDataModel.Data reportData = null;然后再for循环中以及实例化对象,原代码相当于重复操作内存中的一个对象, 固然出现了重复数据,记下来自己挖的坑自己填起来。
0 0
- 记一次Java List重复数据的问题
- java根据list中对象的属性找出list重复数据或去除list重复数据
- java list 去除重复数据
- Java List去重复数据
- Set剔除重复数据和List的排序问题
- java中去除List集合中重复数据的方法
- Java中List集合去除重复数据的方法
- Java中List集合去除重复数据的方法
- Java中List集合去除重复数据的方法
- Java中List集合去除重复数据的方法
- 一次由重复索引导致的问题
- 【过滤重复】一次过滤重复数据的优化过程
- 记一次处理 list 的 remove 方法遇到的问题
- java 删除List 中的重复数据
- Java list<T> 去重复 数据
- Java集合list删除重复元素问题
- 去除List中重复的数据
- list集合列表去除重复的数据
- 《阿里巴巴Java开发手册(正式版)》--工程规约
- MySQL 数据库(表)备份与恢复
- 二维数组查找
- c++指针(一)
- protobuf 数据的一种封装
- 记一次Java List重复数据的问题
- JDK1.7环境搭建
- 基于Windows API的VC++串口通信详解
- Linux进程的实际用户ID和有效用户ID
- Ember.js API (v2.11.0) 翻译 ---004.Routing---Introduction(引言)
- ROS学习笔记(未完成)
- Hadoop学习(1)---(64bit) Centos7 +Vmware安装及Hadoop环境预配置
- 08、小案例-快递查询
- ros中使用pcl编译报错