java 集合
集合中的Set
底层使用数组加链表实现
有点添加速度快,查询速度快,删除速度快,没有顺序
从写equals方法通常需要重写hashCode方法
因为hashCode值一样在比equals
写一个学生类
public class Student {
private String name ;
private int age;
public Student(String name,int age) {
this.name = name;
this.age=age;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "名字:"+name+" 年龄:"+age;
}
@Override
public boolean equals(Object obj) {
return this.toString().equals(obj.toString());
}
@Override
public int hashCode() {
return toString().hashCode();
}
}
在写测试类
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Text2 {
public static void main(String[] args) {
Set set = new HashSet<>();
set.add(new Student("张三",18));
set.add(new Student("李四",20));
set.add(new Student("张三",18));
set.add(new Student("李四",21));
Iterator iterator = set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
输出结果
名字:李四 年龄:21
名字:张三 年龄:18
名字:李四 年龄:20