可泛型的heap,方便使用。
heap介面:
public inte***ce heap
abstractheap類:
public class abstractheapimplements heap
/* * 帶comparator的構造器
* 如果com為null會丟擲illegalargumentexception
*/public abstractheap(comparatorcom, t elements)
/** 初始化heap中的arraylist
*/private void init(t elements)
system.out.println("queue length is : " + l.size());
system.out.println("content is : " + l);
} /*
* 得到堆頂的元素
*/@override
public object get()
/** 移除堆頂端元素,並重新維護heap
*/@override
public t remove()
/** 檢測heap是否為空
*/@override
public boolean isempty()
/** 情況heap中所有元素
*/@override
public void clear()
/** 將堆頂元素替換,並重新維護heap
*/@override
public void set(t obj)
/** 向heap中加入乙個元素
*/@override
public void add(t obj)
/** 比較器
*/protected int compare(int i, int j) throws nocomparableexception
else if (l.get(j) instanceof comparable)
else
}/* * 比較器
*/protected int compare(t i, t j) throws nocomparableexception
else if (i instanceof comparable)
else
}/* * 向上維護
*/private void fixup(int start)
} catch (nocomparableexception e)
l.set(k, s);
} /*
* 向下維護
*/private void fixdown(int k)
catch (nocomparableexception e)
l.set(j, l.get(r));
j = r;
r *= 2;
} l.set(j, ret);
}}
最小推,minheap:
public class minheapextends abstractheap
public minheap(comparatorcom, t elements)
/** 注意兩個引數比較的順序
*/@override
protected int compare(int i, int j) throws nocomparableexception
@override
protected int compare(t i, t j) throws nocomparableexception
}
最大堆,maxheap:
public class maxheapextends abstractheap
public maxheap(comparatorcom, t elements)
/** 注意兩個引數比較的順序
*/@override
protected int compare(int i, int j) throws nocomparableexception
@override
protected int compare(t i, t j) throws nocomparableexception
}
Java泛型的繼承和實現
一 點睛 泛型類和泛型介面被定義後,是可以被繼承和實現的。二 泛型類的繼承 1 class a public class bextends a 2 執行 b test3 說明 子類b在定義的時候,如果省略了a後,那麼b的t自動變成了object,建議定義時加入以保留父類的型別引數。b類還可以增加新的...
JAVA 泛型類,限制泛型和泛型方法
我在學習集合的時候對泛型還不太了解,只是覺得用了泛型之後能向自己的集合裡加入自己指定型別的物件,可以減少資料型別的轉換。那麼,脫離集合後,泛型到底該如何使用。今天碰巧看了一段關於泛型的講解,覺得泛型也沒有自己想象中那麼難,於是將自己的心得分享出來,希望能幫到有需要的人。泛型的知識點大概有 泛型類,限...
Java基礎 泛型 泛型介面 泛型類 泛型方法
一 二 三 泛型方法 1.public t test t t1,t t2 一 泛型 1.泛型產生的背景 原因1 集合中儲存資料時,編譯期間可以儲存任何型別的資料,導致取值時轉換出錯 原因2 每次取值都需要強制轉換,冗餘繁瑣 2.泛型的定義 泛型的本質是乙個引數化的型別 在程式編碼中一些包含引數的類 ...