泛型
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