练习 HashSet 去重复

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px Monaco }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px Monaco; min-height: 30.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px Monaco; color: #931a68 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px Monaco; color: #4e9072 }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px Monaco; color: #3933ff }
p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px Monaco; color: #777777 }
span.s1 { color: #931a68 }
span.s2 { text-decoration: underline }
span.s3 { color: #000000 }
span.s4 { color: #0326cc }
span.s5 { color: #7e504f }
span.s6 { color: #91afcb }
span.Apple-tab-span { white-space: pre }

package com.rf.xs.list;

import java.util.HashSet;

public class Person {

private String name;

private int age;

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 name, int age) {

this.name = name;

this.age = age;

}

public boolean equals(Object obj){

if(obj instanceof Person){     //判断obj是不是 Person类型   instanceof:运算符

Person p = (Person)obj;

return this.name.equals(p.name)&& this.age == p.age;

}

return false;

}

public int HashCode(){

return 0;

}

public String  toString(){

return"Person[name="+name+",age="+age+"]";

}

@Override

public int hashCode() {                    //如果哈希值相同,才回判断equlas是否相同,如果哈希值不同,不会调用equlas方法。

// TODO Auto-generated method stub

return 0;

}

}

package com.rf.xs.list;
import java.util.HashSet;
import java.util.Iterator;
public class TextHashSet01 {
public static void main(String[] args) {

Person per1 = new Person("q", 18);
Person per2 = new Person("q", 18);
Person per3 = new Person("u", 18);
Person per4 = new Person("w", 28);
Person per5 = new Person("r", 17);
//Person[] p = { per1, per2, per3, per4, per5 };
HashSet<Person> l = new HashSet<Person>();
l.add(per1);
l.add(per2);
l.add(per3);
l.add(per4);
l.add(per5);

HashSet<Person> pers = qc(l);
System.out.println(pers);
}

public static HashSet<Person> qc(HashSet<Person> l){
HashSet<Person> pers = new HashSet<Person>();
Iterator<Person> m = l.iterator();
while (m.hasNext()) {
Person n = m.next();
if (!pers.contains(n)) {
pers.add(n);
}
}
return pers;

}

}

时间: 2024-12-17 00:36:58

练习 HashSet 去重复的相关文章

java超快速文本去重复源码

把代码过程经常用到的一些代码记录起来,下面的代码内容是关于java超快速文本去重复的代码. import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class SpeedClear { public static void main(String[] args) { if(args.length==0){ print(); System.exit(1); } if(args.length!

C# List&lt;T&gt;中Select List Distinct()去重复

List<ModelJD> data = myDalJD.GetAllDataList(); List<string> list= new List<string>(); list= datalist4.Select(p => p.name).ToList(); //只取name字段,重新生成新的List集合 this.cmbJdUserName.DataSource = list.Distinct().ToList(); //去重复,绑定数据后面要加ToList

利用Linq对集合元素合并、去重复处理

今晚看了一篇前辈写的linq对集合元素合并去重复处理,觉得有点麻烦,原文地址如下:http://www.cnblogs.com/yjmyzz/archive/2012/12/18/2823170.html#undefined. 于是我自己琢磨利用linq的分组函数,重新写了一个方法,代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace ConsoleAp

Oracle单表去重复(一)

去重有两层含义,一:是记录完全一样:二:是符合一定条件的认为是重复. 根据表的数量,去重可划分为:单表去重和多表关联去重. 对于去重,一般最容易想到的是用distinct,而distinct只能对记录完全重复的记录保留一条. distinct使用的是二重循环的方式来去重的,如果数据量非常大的时候,会导致性能急剧下降. 例如:select distinct 字段名 from 原表; 此应用案例,主要有删除表中的完全重复的记录: insert into 临时表 select distinct 字段名

[爬虫学习笔记]基于 SimHash 的去重复处理模块ContentSeen的构建

      Internet上的一些站点常常存在着镜像网站(mirror),即两个网站的内容一样但网页对应的域名不同.这样会导致对同一份网页爬虫重复抓取多次.为了避免这种情况,对于每一份抓取到的网页,它首先需要进入ContentSeen模块.该模块会判断网页的内容是否和已下载过的某个网页的内容一致,如果一致,则该网页不会再被送去进行下一步的处理.这样的做法能够显著的降低爬虫需要下载的网页数.至于如果判断两个网页的内容是否一致,一般的思路是这样的:并不会去直接比较两个网页的内容,而是将网页的内容经

蓝桥杯——说好的进阶之去重复元素的排列组合

将待排列(组合)的数组,先分别统计出种类和个数,然后进行避免重复的排列(组合). /* 1,1,2,3的排列组合 去重复 * (借此复习排列组合) * * 1:2 2个1 * 2:1 1个2 * 3:1 1个3 * * */ static int[] iarr = new int[3];//目标序列 static int[] carr = new int[] { 1, 2, 3 };//3种item static int[] used = new int[] { 2, 1, 1 };//每种it

C# List&lt;T&gt;中Select List Distinct()去重复 摘抄自 随风% 随笔

List<ModelJD> data = myDalJD.GetAllDataList(); List<string> list= new List<string>();list= datalist4.Select(p => p.name).ToList();  //只取name字段,重新生成新的List集合this.cmbJdUserName.DataSource = list.Distinct().ToList(); //去重复,绑定数据后面要加ToList(

DataTable去重复方法

//去掉重复行 DataTable table=new DataTable(); DataView dv = table.DefaultView; table = dv.ToTable(true, new string[] { "name", "code" }); 此时table 就只有name.code无重复的两行了,如果还需要id值则 table = dv.ToTable(true, new string[] { "id","nam

使用Excel2007去重复功能时要注意的一个问题

作者:iamlaosong Excel2007有个去重复功能(菜单:数据----删除重复项),很有用,过去需要用VBA编程实现的功能,现在点击一下图标就行了.去重复一般是指定某列或者某几列,根据这指定的列将重复的删除. 需要注意的是,这个指定的列中的值虽然相同(重复),但未指定的列却不一定相同.删除重复是保留重复项的第一行,删除后续行,因此,最后的结果就和原始数据的排列有关系,不同的排列,虽然指定列留下来的内容是一样的,但非指定列保留下来的内容却有所不同.