Java 简单实现对象数据去重处理
来源:互联网 发布:英制螺纹如何编程 编辑:程序博客网 时间:2024/04/28 07:42
对于数据库去重相当简单,只需要在查询语句上添加DISTINCT关键字就可以搞定,但是针对Nosql数据库而言DISTINCT未必支持,这时候我们需要自己手动实现。这里有一个数据不重复的最简单的原理:字符串的hashcode比较,当然记录的唯一指标不是ID,而是数据本身,我们去掉ID再来比较是否重复就可以了。
Java 模拟代码:
package com.boonya.mongo.client;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class LoveTest {public static void main(String[] args) {List<Person> list=new ArrayList<Person>();Person p=new Person("1", "boonya", 20);Person p2=new Person("2", "boonya", 20);Person p3=new Person("3", "boonya", 20);Person p4=new Person("4", "boonya", 20);list.add(p);list.add(p2);list.add(p3);list.add(p4);Map<String,Object> map=new HashMap<String, Object>();for (Person person : list) {if(!map.containsKey(""+person.toString().hashCode())){map.put(person.toString().hashCode()+"", person);}}for (Object person : map.values()) {Person uniquePerson=(Person) person;System.out.println(uniquePerson.getId()+" "+uniquePerson);}}}class Person{private String id;private String name;private int age;public String getId() {return id;}public void setId(String id) {this.id = id;}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 Person(String id, String name, int age) {super();this.id = id;this.name = name;this.age = age;}@Overridepublic String toString() {return "Person [" + (name != null ? "name=" + name + ", " : "")+ "age=" + age + "]";}}测试结果 :
1 Person [name=boonya, age=20]
hash碰撞的情况本文不考虑。
阅读全文
0 0
- Java 简单实现对象数据去重处理
- Java-实现文本数据去重
- java 对象去重
- java Set 去重处理
- Java List<对象>去重
- Java数据内存去重
- java list 数据去重
- 自然语言处理之简单文件去重
- 超大数据去重的处理办法
- Linq为对象List数据去重
- ArrayList数据去重的简单方法
- Java中List去重处理
- JAVA-List对象某个字段去重
- java 对象集合去重记录
- MapReduce处理数据去重与数据排序
- MySql数据库:数据查重、去重的实现
- 一行代码实现java list去重
- 一行代码实现java list去重
- poj3046
- Codeforces 838E E. Convex Countour DP
- 线段树详解
- 51nod 1391 1391 01串 (hash)
- 颜色
- Java 简单实现对象数据去重处理
- 如何将自己写的代码上传到github上
- windows 批处理打开新的cmd 处理命令
- Bellovin||HDU5748
- linux的文件权限与目录配置
- 可以输入值的下拉框(select和input的组合使用)
- Bellovin【hdu 5748 dp lis】
- ifconfig command not found
- F