大数据去重,你还在发愁吗?
来源:互联网 发布:移动社交软件 编辑:程序博客网 时间:2024/05/16 19:27
前言
本篇博客可以用“简单粗暴”来形容,嗯对,就是简单粗暴。小编不久前做的两个项目,都实打实的接触了大数据操作。一个是批量导入,一个是从数据库往外查询,都涉及到了数据去重。Excel批量导入的去重,在《Excel批量导入如何做数据去重》这篇博客中已经介绍过了,下面就介绍下从数据库往外查询的数据去重。
背景
ITOO云平台,用户登录时要判断该用户能看到的系统或者界面,下面简称用户资源。一个用户有不同身份,不同身份拥有不同资源,那么当用户登录的时候,这些资源应该怎么处理呢?小编是这么处理的,不同的身份有不同的资源,这些资源可能有重叠,也可能不一样,所以这个用户登录时,就加载该用户所有身份,查出所有身份拥有的资源,如果有重复就去重,有不同的资源就一起加载。
实现方式
因为当前用的都是泛型集合,所以就直接用泛型集合来去重了。
1、List中的元素实现IEquatabe接口,并提供Equals方法和GetHashCode方法。
class User:IEquatable<User>//继承IEquatable接口,实现Equals方法。List就可以使用Distinct去重 { public string name { get; set; } string address; public User(string _name, string _address) { name = _name; address = _address; } public override string ToString() { return string.Format("name:{0},\taddress:{1}", name, address); } public bool Equals(User other) { return this.name == other.name; } public override int GetHashCode() { return name.GetHashCode(); } } } List<User> nonDuplicateList1 = users.Distinct().ToList();
List<User> nonDuplicateList2 = users.Where((x,i)=>users.FindIndex(z=>z.name == x.name) == i).ToList()
List<User> nonDuplicateList3 = new List<User>();//通过循环方式去重 foreach(User user in users) { if(nonDuplicateList3.Exists(x=>x.name==user.name) == false) { nonDuplicateList3.Add(user); } }
总结
作为一个后台开发人员,与数据库打交道的同时是离不开数据去重的。在做这个判断的时候,还涉及到一个问题,就是我想根据该用户登录的时间和地点等不同,猜测他有哪些身份,从而加载相应的资源,而不是将他所拥有的资源全部加载过来,但是怎么知道当前用户想以哪个身份登录呢?这也算人能做的了,但是计算机做不了的事情吧。希望各路大牛,给出一些做过的权限控制方面的经验,指点一下我这个菜鸟。
0 0
- 大数据去重,你还在发愁吗?
- 你还在为寻求高薪而发愁吗?
- 你还在为英语学习发愁吗?
- 你还在为轮播图上的小点 发愁吗,请速速围观围观
- .net码农,你还在发愁怎么开发APP?
- 大数据去重
- Java程序员你还在为涨薪发愁吗?学会这些,我让你薪资翻倍。
- 亲,还在为传输文件发愁吗?
- 你还在为上万元的accp学费发愁吗?ACCP第二学年学习全部资料!!!
- 还在为小图标不能适应各种设备发愁吗?iconfont为你解决所有问题
- oralce 大数据去重
- 你还在为机密文件如何安全销毁而发愁么?
- 在这个信息化时代,你还为隐私保密文件销毁而发愁么
- 淘宝商家还在为自己的店铺没有发愁吗?来八营苍苍推荐的qt1612帮你短时间提升店铺排名
- 还在为 Graphics.DrawImage 速度慢的问题发愁吗,请看这里
- 还在为春节订票发愁吗?聪明的MTK码农们行动起来吧。
- 还在为画“类Word文档报表”而发愁吗?
- 还在为画“类Word文档报表”而发愁吗?
- iOS使用GCD或NSTimer定时刷新按钮的文字,按钮文字闪烁的问题
- JS的进阶之路(一)
- 堆排序
- 把一个javabean序列化
- 在Faster RCNN上运行自己的数据集
- 大数据去重,你还在发愁吗?
- JSP九大内置对象及四个作用域
- BestCoder Round #73 (div.2)1002/hdoj5631
- 敏捷带来的新东西
- c++第二次上机实验
- 160319 addChildViewController&transitionFromViewController的使用
- 《Concurrency Programming Guide》 笔记
- Winform开发框架主界面设计展示
- iOS数据持久化之偏好设置