1 解析 EXCEL 去重操作

描述:

最近在对业务进行实现时,遇到一个问题,就是针对于从EXCEL中读取数据后,如何先去除重复数据,然后再进行一系列的操作呢?

思考:

1 当时组长有提供一种思路,先对excel进行保存,然后再通过数据库的分组(group by)获取唯一的数据(请教之后告诉的一种思路,之前的操作上便是如此)

2 当时思考了一两天,自己有去通过treeSet 或者 HashMap去进行去重,但是都存在一些问题,无法满足实际的一个业务需求,后面在网上进行查找资料时,发现一种解题思路可以试一下,然后就直接编写代码进行尝试,满足当下的业务需求,就决定是他了。

实现:

通过双重for进行实现判断,在后者的属性与前者的属性一致时,可以对后者进行移除;

缺点:增加了空间开销

优点:减少了io操作,提高了效率

简单代码思路:

package com.orange.test;import com.orange.student.Student;
import org.apache.commons.lang3.StringUtils;import java.util.*;
import java.util.stream.Collectors;public class Demo6 {public static void main(String[] args) {List<Student> list = new ArrayList<>();Student s = new Student("李四",18,"2022-02-16 12:00:35","1");Student s1 = new Student("张飞",19,"2022-02-18 12:00:35","2");Student s2 = new Student("张飞",19,"2022-02-18 12:00:35","3");// --Student s3 = new Student("张飞",19,"2022-02-18 12:00:35","4");// --Student s4 = new Student("张飞",19,"2022-02-18 12:00:35","5");// --Student s5 = new Student("张飞",19,"2022-02-18 12:00:35","6");// --Student s6 = new Student("王五",19,"","7");Student s7 = new Student("王五",19,"2022-02-18 12:00:35","8");Student s8 = new Student("王五",19,"2022-02-18 12:00:35","9");list.add(s);list.add(s1);list.add(s2);list.add(s3);list.add(s6);list.add(s4);list.add(s5);list.add(s8);list.add(s7);//去重for (int i = 0; i < list.size(); i++)  //外循环是循环的次数{for (int j = list.size() - 1 ; j > i; j--)  //内循环是 外循环一次比较的次数{if (list.get(i).getName().equals(list.get(j).getName()) && list.get(i).getAge() == list.get(j).getAge()){list.remove(j);}}}list.forEach(ss->{System.out.println(ss);});}
package com.orange.student;public class Student {private String name;private int age;private String sendTime;private String completeTime;public Student() {}public Student(String name, int age, String sendTime, String completeTime) {this.name = name;this.age = age;this.sendTime = sendTime;this.completeTime = completeTime;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSendTime() {return sendTime;}public void setSendTime(String sendTime) {this.sendTime = sendTime;}public String getCompleteTime() {return completeTime;}public void setCompleteTime(String completeTime) {this.completeTime = completeTime;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", sendTime='" + sendTime + '\'' +", completeTime='" + completeTime + '\'' +'}';}
}

注意点:

此次excel进行导入时,存在行号一起进行了导入,对于判断属性时,行号不应该在考虑的一个范围之内,而是针对其余属性进行考虑。

解析 EXCEL 去重相关推荐

  1. python 解析excel表并排重输出到txt

    需求 解析excel表中每个单元格的元素,并且排重后输出到txt文件中,保存格式为UTF-8 程序 pip install xlrd import xlrd# 保存唯一字符的列表 convert_li ...

  2. 为什么poi解析Excel慢?

    我们项目用xlsx配置业务数据,每个项目中会有500~600张表,解析耗时1分多钟. 尝试改成csv后,解析耗时5~6秒. 这不禁让我陷入思考,都是文本数据,为什么poi解析Excel会这么慢? 带着 ...

  3. java代码使用http请求解压zip包并解析xml_Javascript 是如何解析 Excel 文件的?

    最近要做一个导入导出 Excel 的功能,上一次做这个功能的时候,还是用的 Java Apache POI,这是一个用 Java 编写的免费开源的跨平台的 Java API,能够对 Microsoft ...

  4. JAVA批量上传下载Excel_如何实现批量上传----------Java解析excel

    一.引子 在web平台开发中仅经常会遇到一下需要批量的问题,通常得做法是使用excel上传,下面主要介绍一下在实际开发中到的实例. 二.准备工作 1.需要导入的jar包(主要用到poi包) (1)po ...

  5. jxl解析excel

    jxl解析excel ExcelOS工作 在进行实践前,我们需要对excel有一个大致的了解,excel文件由一个工作簿(Workbook)组成,工作簿由工作表(sheet)组成,每个工作表又由很多单 ...

  6. poi解析excel读取日期为数字的问题

    Apache poi 版本:3.12 今天在用poi解析excel文件时,碰到一个蛋疼的问题. 在我的excel文件中有一列是日期类型,例如有以下这么一行数据(日期中月份前面的0会自动去掉): 在读取 ...

  7. 利用Spring-Boot解析Excel、用Java分析Excel、告别手动输入用程序读取Excel

    利用Spring-Boot解析Excel.用Java分析Excel.告别手动输入用程序读取Excel 一.资源 java读取Excel文件 二.修改 (一)中的代码中的 import service. ...

  8. 利用js-xlsx.js插件实现Excel文件导入并解析Excel数据成json数据格式

    <!--本文转载于网络,有太多一样的文章,不知道原作者是哪位了,就不注明出处了.这里记载下来,用于自己的学习借鉴--><!DOCTYPE html><html lang= ...

  9. java excel api xlsx_Java 解析Excel(xls、xlsx两种格式)

    Java 解析Excel(xls.xlsx两种格式) 一.环境 JDK 1.8 二.JAR 1.commons-collections4-4.1.jar 2.poi-3.9-20121203.jar ...

最新文章

  1. caffe windows 学习第一步:编译和安装(vs2012+win 64)
  2. java代码没错却运行不了_Java代码没错误,tomcat能正常运行,但是我的项目主页却一直显示不了,显示404错误...
  3. 【Protocol Buffer】Protocol Buffer入门教程(二):消息类型
  4. RabbitMQ,Springboot整合RabbitMQ实现 消息可靠性投递,Consumer ACK,TTL,死信队列,使用TTL+死信队列=延迟队列
  5. mysql web备份软件_GitHub - toolzone/mysql_web_backup: mysql数据库自动备份,web网站自动备份shell脚本...
  6. 启动docker容器报错 driver failed programming external connectivity on endpoint
  7. Jmeter 2.6下载安装
  8. jQuery天猫商品分类导航菜单
  9. 每个程序员1小时内必须解决的5个编程问题(转)
  10. 冒险岛无敌外挂代码诠释
  11. 操作 神通数据库_国产神通数据库操作备忘(Linux)
  12. 二进制乘法的booth算法
  13. 14个优化网站性能提高网站访问速度技巧
  14. 基于SpringBoot开源框架的MES生产制造执行系统源码
  15. 设计师必备,6个PNG素材网站
  16. Android联网背单词APP制作总体介绍(一)
  17. CSAPP第四章家庭作业参考答案
  18. 笔记本系统转移到固态硬盘
  19. 剑指offeⅤ(Java 持续更新...)
  20. TSINGSEE青犀视频云-边-端架构视频智能分析平台EasyNVR如何实现直播地址和录像地址统一

热门文章

  1. Linux 解压缩文件之zip命令
  2. 关于RS485通讯中使用STM32串口以DMA方式发送数据丢失字节的问题
  3. 数据处理之异常值分析、处理
  4. 回归分析——基本内容
  5. python官网 中文版-python .. 官方教程中文版.pdf
  6. 智能聊天机器人小黄鸡
  7. GAMLSS拟合连续分布练习1-代码及注释
  8. 大一大学计算机考试题库,2017年大学计算机基础试题库「附答案」
  9. matlab怎么搭建神经网络,matlab实现神经网络算法
  10. access violation at address 解决之法【转】