单列集合(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); } }}