標籤:java 泛型
泛型:
泛型:通過<資料額類型>來接受一種引用資料類型,作用在編譯時間,使用檢查
添加集合的對象是否屬於該類型,從而把運行時的問題轉換為編譯時間異常,提高程式的安全性
避免拋出 ClassCastException,同時也不需要類型轉換
<>什麼時候使用?
當操作的引用資料類型不確定的時候,使用<>.把要操作的資料類型傳進來即可
其實<>相當於接受具體的引用資料類型的參數範圍
泛型在介面中的應用:
執行個體:
public class Demo21 {
public static void main(String[] args) {
Manager m = new Manager();
m.add(new Worker(“a”, 23));
m.add(new Worker(“ab”, 21));
m.add(new Worker(“ac”, 22));
System.out.println("delete-->" + m.del(1)); m.show();}static class Worker { private String name; private int age; public Worker(String name, int age) { super(); this.name = name; this.age = age; } @Override public String toString() { return "Worker [name=" + name + ", age=" + age + "]"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
}
interface IManager {
public void add(T data);
public T del(int index);public void show();
}
class Manager implements IManager {
private List list;
Manager() {
list = new ArrayList();
}
@Override
public void add(T data) {
list.add(data);
}
@Override
public T del(int index) {
T data = list.get(index);
list.remove(index);
return data;
}
@Override
public void show() {
Iterator it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
// 方法中使用泛型:當方法參數資料類型不確定,使用泛型
class GenericMethod {
public void test(T t) {
System.out.println(“沒有傳回值的方法t”);
}
public <T> T getT(T t) { System.out.println("有傳回值的方法getT"); return t;}
}
萬用字元:?
限定類型:
? extends E: 接受E類型或者E的子類型,上限
一般儲存物件的時候 addAll()
? super E:接受E類型或者E的父類型,下限
一般用取出對象,比較子
public class Demo22 {
public static void main(String[] args) {
Food f = new Food();
f.setFood(“漢堡”);
System.out.println(f.getFood());
Food f1 = new Food();
f1.setFood(100);
Food f2 = new Food();
buy(f);
buy(f1);
buy1(f1);
buy2(f);
buy2(f2);
}
public static void buy(Food
equals().—>key是唯一的
TreeMap:(key-value)集合,按照鍵進行排序
和TreeSet類似
1)自然順序
2)自訂比較子
a 自訂類實現Comparable介面
b 定義自訂比較子類,實現Comparator介面
(key-value)集合,按照鍵進行排序
和TreeSet類似
1)自然順序
2)自訂比較子
a 自訂類實現Comparable介面
b 定義自訂比較子類,實現Comparator介面
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Java基礎 筆記(四)