泛型
1.泛型的基本使用
限制集合存储的数据类型
package com.lu.day07.generics;/*** 定义了一个泛型类* E 泛型通配字母(不固定代替真实数据类型A-Z都可以)* 常见的泛型通配字母:* E:element 元素* T:type 类型* R:return 返回值类型* K:key 键* v: value 值* 子类一旦指定泛型父类用的也是子类的泛型* @param <E>*/
public class Date<E> {private E date;public E getDate() {return date;}public void setDate(E date) {this.date = date;}public static void main(String[] args) {Date<String> a = new Date<>();a.setDate("我是你爸爸");String date = a.getDate();System.out.println(a.getDate());Date<Integer> b = new Date<>();b.setDate(123);Integer date1 = b.getDate();System.out.println(date1);}
}
Set
1.set集合的概念
2.HashSet的基本使用
package com.lu.day07.setdome;import java.util.HashSet;
import java.util.Objects;public class SetDome {public static void main(String[] args) {HashSet<String> set = new HashSet<>();set.add("张三");set.add("张三");set.add("王二");set.add("劳模");set.add("小李");System.out.println(set);//HashSet自定义对象想要去重必须重写 equals 和 hashCode 方法HashSet<Teacher> t = new HashSet<>();t.add(new Teacher("张老师","男","教师"));t.add(new Teacher("张老师","男","教师"));t.add(new Teacher("王老师","女","幼师"));t.add(new Teacher("李老师","男","主任"));System.out.println(t);//为什么重写 equals 必须重写 hashCode?//hash(哈希):是由hash算法对任意的输入产生一个整数,并且是固定的//哈希碰撞:同一个输入产生的hash值永远一样,但是不同的输入生成的hash值可能一样//hash如果内容一样就生成一样的hash值但是(如果内容相同)hash值可能相同这时候就需要equals进行比较了//如果两个对象根据 equals 方法认为是相等的,那么它们必须有相同的 hashCode 值。//如果两个对象 hashCode 值相等,它们未必 equals 相等,但如果 hashCode 不相等,它们一定不相等。String a = "a";String b = "b";System.out.println(Objects.hashCode(a));System.out.println(Objects.hashCode(b));}
}
package com.lu.day07.setdome;import java.util.Objects;public class Teacher {private String name;private String sex;private String job;public Teacher() {}public Teacher(String name, String sex, String job) {this.name = name;this.sex = sex;this.job = job;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getJob() {return job;}public void setJob(String job) {this.job = job;}@Overridepublic String toString() {return "Teacher{" +"name