Study

发布时间 2023-06-05 10:00:02作者: 吴大bb
import java.awt.*;
import java.util.HashSet;

public class SetStudy {
public static void main(String[] args) {
//1--HarshSet//学习类,不可重复
//创建对象
HashSet hashSet=new HashSet(10);
//调用方法
//增删改查
//add
hashSet.add("abc");//类型可不同
hashSet.add(123);
hashSet.add("李四");
hashSet.add("李四");//去重,无序,在hashSet里面不谈论顺序
System.out.println(hashSet);
//addAll(也需要增加同类型的)
//remove
hashSet.remove("李四");//指的是删除元素1
System.out.println(hashSet);
//set(hashSet里面没有,因为是无序的座椅就没有改的操作)
System.out.println(hashSet.size());//输出长度
System.out.println((hashSet.isEmpty()));//判断是否为空
System.out.println(hashSet.contains("张三"));//判断是否包含
HashSet hashSet1=new HashSet();
Student student=new Student(1,"张三");//创建一个学生类的对象
Student student1=new Student(1,"张三");
hashSet1.add(student);
hashSet1.add(student1);
System.out.println(hashSet1);//为什么能重复添加,因为两者的哈希值不一样
}
}
class Student {//编程题,生成setter和getter
private Integer ID;
String name;

//构造方法:方法名(类名),参数列表,(public)
//方法:返回值类型,参数列表,方法名
public Student(Integer ID, String name) {
this.ID = ID;//this理解成当前类
this.name = name;
}

@Override
public String toString() {
return ID + ":" + name;//(重写toString方法 ,以字符串类型输出)
}

//Object
@Override
public int hashCode() {
return ID.hashCode();
}

@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof Student)) {//判断某一个对象是否是某一个类的子对象,!是取反
return false;
}
//类型转换:Object--->子类Student(向下转换)(强制类型)
Student s=(Student)obj;
return this.ID.equals(s.ID);//这个是ID与里面的ID判断是否相等
//重写(当子类继承父类事,方法体不一样,方法结构一样,方法名一样),重载(同一个类中,sum()方法名一样,并且在同一个中)
}

}