一、使用HashSet添加一个String类型的值:
public static void hashSet1(){ HashSet<String> hashSet = new HashSet<String>(); hashSet.add("java001"); hashSet.add("java01"); hashSet.add("java011"); hashSet.add("java002"); hashSet.add("java004"); //使用常用迭代器获取输出内容 Iterator<String> iterator = hashSet.iterator(); while (iterator.hasNext()) { String next = iterator.next(); System.out.println(next); } }
二、使用HashSet添加一个对象:
public static void hashSet2(){ HashSet<Student> hashSet = new HashSet<Student>(); hashSet.add(new Student("zhangsan1", 21)); hashSet.add(new Student("zhangsan1", 21)); hashSet.add(new Student("zhangsan2", 21)); hashSet.add(new Student("zhangsan3", 23)); hashSet.add(new Student("zhangsan4", 24)); //使用常用迭代器获取值 Iterator<Student> iterator = hashSet.iterator(); while (iterator.hasNext()) { Student next = (Student) iterator.next(); System.out.println(next.getName() + " " + next.getAge()); } }
上面使用到的Student对象类:
class Student { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } //复写hashCode方法 @Override public int hashCode() { return 60; } //复写equals方法 @Override public boolean equals(Object arg0) { if (!(arg0 instanceof Student)) { return false; } Student studet = (Student) arg0; return this.name.equals(studet.name) && this.age == studet.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; } }
最后使用调用main方法得出结果:
java004
java002
java011
java001
java01
-------------------------
zhangsan1 21
zhangsan2 21
zhangsan3 23
zhangsan4 24