Arraylist判断重复用equals方法,HashSet用HashCode和equals方法。
如果姓名和年龄相同则重复,不打印
import java.util.*; class h { public static void main(String[] args) { HashSet sh = new HashSet(); sh.add(new person("a1",11)); sh.add(new person("a2",12)); sh.add(new person("a2",12)); sh.add(new person("a3",13)); for(Iterator it = sh.iterator();it.hasNext();)//循环读元素 { person p = (person)it.next(); sop(p.getName()+","+p.getAge()); } } public static void sop(Object obj) { System.out.println(obj); } } class person { private String name; private int age; person(String name,int age) { this.name = name; this.age = age; } public int hashCode()//增加HASH值 { return name.hashCode()+age; } public boolean equals(Object obj)//判断是否重复,equals方法 { if(!(obj instanceof person)) return false; person p = (person)obj; return this.name.equals(p.name)&&this.age==p.age; } public String getName() { return name; } public int getAge() { return age; } }
时间: 2024-09-17 04:04:33