Java HashSet练习

来源:互联网 发布:java服务器插件 编辑:程序博客网 时间:2024/06/01 21:06
package ArrayList;import java.sql.Array;import java.util.ArrayList;import java.util.Iterator;import com.sun.org.apache.bcel.internal.generic.NEW;import p.bean.Person;public class ArrayListTest2 {public static void main(String[] args) {//singleDemo();ArrayList a1=new ArrayList();a1.add(new Person("lisi1",21));a1.add(new Person("lisi2",22));a1.add(new Person("lisi3",23));a1.add(new Person("lisi4",24));a1.add(new Person("lisi4",24));a1.add(new Person("lisi4",24));System.out.println(a1);a1=getSingleElements(a1);System.out.println(a1.remove(new Person("lisi2",22)));//true //虽然是new的 但 HashSet 先判断 有没有这个元素 根据 hashCode 和 equals 都符合 就删除了// ArrayList 是根据 euqals 判断  //一定要复写 自定义类中的这两个方法System.out.println(a1); }public static void singleDemo() {ArrayList a1=new ArrayList();a1.add("abc1");a1.add("abc2");a1.add("abc2");a1.add("abc4"); a1.add("abc4"); System.out.println(a1);a1=getSingleElements(a1);System.out.println(a1);}private static ArrayList getSingleElements(ArrayList a1) {//1 定义一个临时容器 ArrayList temp=new ArrayList();//2 迭代a1集合Iterator it=a1.iterator();while(it.hasNext()) {Object obj=it.next();//3 判断被迭代到的元素是否在临时容器中存在 if(!temp.contains(obj)) {temp.add(obj);}}return temp;}}
package p.bean;public class Person {private String name;private int age;public Person() {super();// TODO Auto-generated constructor stub}/*@Overridepublic int hashCode() {// TODO Auto-generated method stub//System.out.println(this+"...hashCode");return name.hashCode()+age;}*/@Overridepublic boolean equals(Object obj) {// TODO Auto-generated method stubif(this==obj)//地址一致 直接返回truereturn true;if(!(obj instanceof Person)){//如果 类型 不一致 根本不用比throw new ClassCastException("类型错误");}//System.out.println(this+"..euqals."+obj);Person p =(Person)obj;return this.name.equals(p.name)&&this.age==p.age;}public String toString() {return name+"..."+age;}public Person(String name, int age) {super();this.name = name;this.age = 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 static void main(String[] args) {// TODO Auto-generated method stub}}



原创粉丝点击