資料結構之java泛型

2021-08-31 01:41:15 字數 973 閱讀 3146

雖然該賬號已經申請很長一段時間,每次找資料,csdn上的小夥伴所提供的資訊總能幫我大忙;時間久了,感覺自己只是乙個消費者,並沒有做出一點點貢獻。最近,腦子一熱,買了乙個資料結構與演算法分析,第一小節看的就是泛型,回頭想想,好像大學裡學的演算法都是以這種泛型方法展示的,廢話不多說,自己總結一丟丟。

1.舉個例子:

public class animal

public void write(t name)

public static void main(string args)

該方法意圖找出陣列的最大值,由於編譯器不能證明compareto方法是合法的,只有在t 是comparable或者comparable的子類才能保證comparato存在。因此,我們可以使用型別限定,將函式修改為:

public static t findmax(t arr)     //雖然comparable是介面,但也得用extends

即可。當然我們也可以寫成 

public static > t findmax(t arr)

這樣我們的compareto方法比較的就是傳入的t這個型別

有個地方我們的注意:

假設  t 為   public class animal implements comparable{}

t的子類    public  class dog extends animal{}

傳入animal ,  public  static> animal findmax(animal arr)  可行的

但是,傳入dog    是不可行

因為我們知道的只是dog 實現了comparable,即 dog  is-a comparable,但它 is-not-a    comparable

如果需要使dog傳入可行,方法可改為

public  static > animal findmax(animal arr)

希望能對大家有所幫助。

基本泛型資料結構

資料結構 電腦程式的靈魂 資料結構選取的好壞直接決定了演算法效率的高低和實現的複雜程度 資料結構的組織與訪問特性,決定了演算法的選取與實現 list 用陣列儲存資料 資料項查詢複雜度為o n 下標查詢複雜度為o 1 當資料空間不夠時,擴大1陪空間 將資料從原有緩衝區複製到新的緩衝區中 帶來o n 的...

《資料結構與演算法》之泛型 使用介面型別表示泛型

如 考慮再由一些項組成的陣列中找出最大項的問題。基本的 是型別無關的,但是它需要一種能力來比較任意兩個物件。因此,不能直接找出object的陣列中的最大元素 我們需要更多的資訊。最簡單的方法就是找出comparable的陣列中的最大元。要確定順序,可以使用compareto方法,它對所有的compa...

Java之泛型程式設計

1.概念 泛型就是引數化型別。泛型的好處是在編譯的時候檢查型別安全,並且所有的強制轉換都是自動和隱式的,提高 的重用率。2.案例 1 先看下面案例 不適用泛型程式設計 list li new arraylist 使用泛型程式設計如下 使用泛型的優點 大型應用時能顯著降低程式的複雜度 泛型為較大的優化...