单列集合(Collection)之Set集合
特点
无序(元素的存取顺序不一致),唯一
结论
set集合保证元素的唯一性依赖:equals()和hasCode()方法
案例
public class SetDemo {
public static void main(String[] args) {
//需求:在set集合中添加5个学生对象,然后遍历
//1.创建集合对象
Set<Student> set = new HashSet<>();
//2.创建元素对象
Student s1 = new Student("张三",23);
Student s2 = new Student("李四",30);
Student s3 = new Student("王五",40);
Student s4 = new Student("王五",40);
Student s5 = new Student("张三",23);
//3.将集合对象添加到元素对象中
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
set.add(s5);
//4.遍历集合
//为什么set集合没有“去重”
//因为set集合保证元素的唯一性:equals()和hasCode()方法,你没有在xuesheng中重写这两个方法,默认调用的是object类中的这两个方法
//而Object类中equals()方法默认比较的是地址值是否相同
//解决方案:在xuesheng类中重写这两个方法
System.out.println(set);
System.out.println("------------------");
//通过迭代器遍历集合
//1.通过集合对象获取对应的迭代器对象
Iterator<Student> it = set.iterator();
//2.判断迭代器中是否有元素
while (it.hasNext()){
//3.如果有就获取
Student s = it.next();
System.out.println(s);
}
System.out.println("------------------");
//通过增强for遍历集合
for (Student student : set) {
System.out.println(student);
}
}
}