一段简单的关于Set的代码——、
1.HashSet
package cn.jsu.www2;
import java.util.*;
class person {
private String name;
private int age;
public person() {}
public person(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
person person = (person) o;
return age == person.age && Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public String toString() {
return "姓名:" + this.name + "\t年龄:" + this.age;
}
}
public class Demo12 {
public static void main(String[] args) {
Set<person> east = new HashSet<>();
person swk = new person("孙悟空",18);
person zbj = new person("猪八戒",18);
person shs = new person("沙和尚",19);
person ts = new person("唐僧",17);
person zbj2 = new person("猪八戒",18);
east.add(swk);
east.add(zbj);
east.add(shs);
east.add(ts);
if(!east.add(zbj2)){
System.out.println("(====不能添加两个相同的猪八戒====)");
}
for(person s:east){
System.out.println(s);
}
System.out.println("利用迭代器遍历Set");
Iterator<person> i = east.iterator();
while(i.hasNext()){
person current = i.next();
System.out.println(current);
}
}
}
2.TreeSet
package cn.jsu.www4;
import java.util.*;
class Person implements Comparable {
private String name;
private int age;
public Person() {}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "姓名:" + this.name + " \t年龄:" + this.age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public int compareTo(Object o) {
Person per = (Person) o;
if(this.age < per.age)
return -1;
else if(this.age > per.age)
return 1;
else
return 0;//从小到大排序
}
}
public class Demo21 {
public static void main(String[] args) {
Set<Person> se = new TreeSet<>();
se.add(new Person("swk",27));
se.add(new Person("zbj",18));
se.add(new Person("shs",29));
se.add(new Person("ts",23));
for(Person a:se){
System.out.println(a);
}
}
}