package com.sinye.aaaaaaaaa.svn;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.collections.CollectionUtils;
public class ContactUnqiueTest {
public static void main(String[] args) {
// 模拟读取csv文件
List<ContactVo> contactVoList = getContactVoList();
}
/**
*
* 记忆猫系统 V1.0版
*
* Function:打印集合中所有元素
*
* @param voSet
*
* @author: AC 2011-3-17 上午09:11:33
*
*/
private static void displayItems(Collection<ContactVo> voCollection) {
if (CollectionUtils.isNotEmpty(voCollection)) {
for (ContactVo contactVo : voCollection) {
System.out.println("ID: " + contactVo.getId() +"姓: " + contactVo.getFirstName() + ", 名: " + contactVo.getLastName() + ", 电话:" + contactVo.getTel());
}
}
}
/**
*
* 记忆猫系统 V1.0版
*
* Function:模拟读取csv文件
*
* @return
*
* @author: AC 2011-3-17 上午09:08:37
*
*/
private static List<ContactVo> getContactVoList() {
List<ContactVo> voList = new ArrayList<ContactVo>();
voList.add(new ContactVo(1, "张", "三", "123456"));
voList.add(new ContactVo(2, "李", "四", "23456"));
voList.add(new ContactVo(3, "王", "五", "3456"));
voList.add(new ContactVo(4, "马", "六", "456"));
voList.add(new ContactVo(5, "张", "三", "123456789"));
voList.add(new ContactVo(6, "马", "六", "4560830"));
voList.add(new ContactVo(7, "马", "六", "4563242"));
voList.add(new ContactVo(8, "马", "六", "123456"));
voList.add(new ContactVo(9, "王", "五", "3456"));
return voList;
}
/**
*
* 记忆猫系统 V1.0版
*
* Function:根据名称去重 (第一种方式)
*
* @param contactVoList
*
* @author: AC 2011-3-17 上午09:08:42
*
*/
private static void unqiueContactByName(List<ContactVo> contactVoList) {
if (CollectionUtils.isNotEmpty(contactVoList)) {
Map<String, ContactVo> voMap = new HashMap<String, ContactVo>();
for (ContactVo contactVo : contactVoList) {
voMap.put(contactVo.getFirstName() + contactVo.getLastName(), contactVo);
}
System.out.println(voMap.size());
}
}
/**
*
* 记忆猫系统 V1.0版
*
* Function:根据名称去重 (第二种方式)
*
* @param contactVoList
*
* @author: AC 2011-3-17 上午09:08:42
*
*/
private static void unqiueContactByName2(List<ContactVo> contactVoList) {
List<ContactVo> resultVoList = new ArrayList<ContactVo>();
if (CollectionUtils.isNotEmpty(contactVoList)) {
List<String> existsNameList = new ArrayList<String>();
for (ContactVo vo : contactVoList) {
if (!existsNameList.contains(vo.getFirstName() + vo.getLastName())) {
resultVoList.add(vo);
existsNameList.add(vo.getFirstName() + vo.getLastName());
}
}
}
displayItems(resultVoList);
}
}
分享到:
相关推荐
这个"windows文件去重demo"就是一个实用的工具,它可以帮助用户高效地查找并删除重复的文件,节省磁盘空间。这个软件或插件的设计理念是让用户只需要简单修改配置中的文件路径,就能轻松应用到不同的文件夹进行去重...
前端基础数组、对象数组去重demo
海量数据去重排序bitmap(位图法)在java中实现的两种方法 海量数据去重排序是指在大量数据中找到重复出现的元素或去除重复出现的元素,这种问题在面试中经常被考察。针对这种问题,一种常用的解决方法是使用位图法。...
本项目主要关注的是在图片上传过程中实现去重功能,确保用户上传的每一张图片都是唯一的,避免重复图片占用服务器资源。这个功能对于提升用户体验和优化存储效率至关重要。 1. **图片上传**:图片上传是指用户可以...
##scrapyWithBloomfilter_demo## 一个简单的scrapy demo,对scrapy_redis模块做了一些修改,将重去模块替换成了Bloomfilter去重。更多介绍见《scrapy_redis去重优化(已有7亿条数据),附演示福利》。##种子优化## ...
可以配置采集网站的图片,包含分组统计,相同数据合并功能,主要是给群内成员来个demo,让大家有个学习的demo 小试牛刀、临时写的,莫吐槽 需要用到mysql数据库,项目里有个image.sql文件,请先执行一下,然后...
这些数据结构在实际编程中应用广泛,如数据存储、去重、交并差集运算等。 5. **文件操作** Python提供了丰富的文件操作接口,包括读写文件、追加内容、处理异常等。在Demo中,新手可以学习如何正确地打开、关闭...
- Item Pipeline处理从Spider传递过来的Item,执行数据清洗、验证、去重和持久化存储等操作。 - Request/Response对象分别表示网络请求和响应,是Scrapy爬取网页的基础。 - Downloader Middleware处理请求和响应...
4. **数据处理**:爬取到的数据往往需要进一步处理,如清洗、去重、标准化等,以便进行后续分析。这个demo可能包含了数据预处理的示例代码,帮助学习者理解如何处理爬虫获取的原始数据。 5. **大数据存储**:由于...
3. **pipelines.py**:处理爬取到的数据,例如清洗、去重、保存等操作。 4. **settings.py**:项目的配置文件,包括中间件、下载器设置等。 5. **middlewares.py**:自定义中间件,可以处理请求和响应,实现更复杂的...
需要上传一个测试文件,用以配合博客中写的代码,博文地址:https://blog.csdn.net/missyougoon/article/details/83926840
- **数据存储**:抓取到的数据可能需要进行清洗、去重,然后保存为CSV、JSON或其他格式,便于后续分析。 - **异常处理**:在编写爬虫时,应加入异常处理机制,以应对网络不稳定、服务器响应超时等问题。 - **爬虫...
5. **错误处理**:重试机制、请求去重、异常处理等功能,确保数据的完整性和爬虫的稳定性。 **构建全站爬虫** 在本示例中,"186信息网站全站爬取"可能包括以下步骤: 1. **安装依赖**:确保安装了Scrapy、Scrapy-...
在当今社交媒体时代,视频和帖子评论数据成为了非常有价值的资源。它们不仅能够帮助企业和个人了解用户的反馈和需求,...这个模块需要实现各种数据清理和标准化功能,如去重、分词、情感分析等。处理后的数据将更加结构化
**GreenDao傻瓜入门demo(增加删除):** 在Android应用开发中,数据持久化是不可或缺的一部分,而GreenDao就是这样一款高效、轻量级的对象关系映射(ORM)框架,它使得开发者可以方便地在SQLite数据库中进行数据的...
除了基本的推送功能,GoEasy还提供了如离线消息存储、消息回执、消息去重等高级特性,可以根据实际应用场景选择使用。 在Demo中,`Goeasy`可能包含了以下内容:Java源代码文件(如`GoeasyClient.java`)、配置文件...
Kettle的转换器(Transformations)允许用户通过拖放方式创建数据流图,包括数据类型转换、过滤、聚合、去重、计算等操作。"简单"和"复杂"的区别在于转换的逻辑复杂性,简单的转换可能只需要几个基本步骤,而复杂的...
综上所述,"demo-redis-bloom.zip"提供的示例代码展示了如何在Spring Boot应用中利用Redis存储和操作布隆过滤器,以实现高效的数据去重和查询功能。通过学习这个例子,开发者可以了解到如何在实际项目中整合这些技术...
ec-do自己封装的常用操作实例实例为日常开发常用的小实例,包括多个去重,打乱数组,字母大小写转换,cookie操作的封装等。使用方法♡ec-do.js //消除空间ecDo.trim('xx x x',1); // xxxx //大小写转换ecDo.trim...
本项目“Scrapy爬取百度图片的Demo”是一个实用的实例,教你如何利用Scrapy来抓取百度图片搜索结果,并对爬取过程进行了优化。 首先,我们需要了解Scrapy的基本结构。一个Scrapy项目通常包含以下几个核心组件: 1....