泛型的引入與案例

2022-09-18 04:30:33 字數 1217 閱讀 9914

泛型引入原因:

public class objecttool

public void setobj(object obj) }/*

* 早期的時候,我們使用object來代表任意的型別。

* 向上轉型是沒有任何問題的,但是在向下轉型的時候其實隱含了型別轉換的問題。

* 也就是說這樣的程式其實並不是安全的。所以j**a在jdk5後引入了泛型,提高程式的安全性。

*/public class objecttooldemo }/*

* arraylist儲存字串並遍歷

* * 我們按照正常的寫法來寫這個程式, 結果確出錯了。

* 為什麼呢?

*         因為我們開始儲存的時候,儲存了string和integer兩種型別的資料。

*         而在遍歷的時候,我們把它們都當作string型別處理的,做了轉換,所以就報錯了。

* 但是呢,它在編譯期間卻沒有告訴我們。

* 所以,我就覺得這個設計的不好。

* 回想一下,我們的陣列

*         string strarray = new string[3];

*         strarray[0] = "hello";

*         strarray[1] = "world";

*         strarray[2] = 10;

* 集合也模仿著陣列的這種做法,在建立物件的時候明確元素的資料型別。這樣就不會在有問題了。

* 而這種技術被稱為:泛型。

* * 泛型:是一種把型別明確的工作推遲到建立物件或者呼叫方法的時候才去明確的特殊的型別。引數化型別,把型別當作引數一樣的傳遞。

* 格式:

*         《資料型別》

*         此處的資料型別只能是引用型別。

* 好處:

*         a:把執行時期的問題提前到了編譯期間

*         b:避免了強制型別轉換

*         c:優化了程式設計,解決了黃色警告線

*/public class genericdemo

// 看下面這個**

// string strarray = new string[3];

// strarray[0] = "hello";

// strarray[1] = "world";

// strarray[2] = 10;}}

Delphi 泛型的使用案例

解決問題 如有一組數字,55 68 79 120 130 180 先進行最大兩個數的比對,譬如 130 180 比對,取小值,得到130,大的180 130 50,然後在將50放入剩餘的55 68 79 120比對,重複上面的比對要求,如79 120 比對結果41 再和55 68比對,執行直至最後兩...

Java中引入泛型的好處

泛型的本質是引數化型別,即所操作的資料型別被指定為乙個引數。這種型別引數可以用在類 介面和方法的建立中,分別稱為泛型類 泛型介面 泛型方法。在沒有泛型的情況下,通過對型別object的引用來實現引數的轉換,這種轉換是需要顯式地強制型別轉換,對於強制型別轉換錯誤的情況,編譯器可能不提示錯誤,而在執行時...

泛型方法的寫法 案例

這個泛型方法目的是比較兩個list的object物件,把兩個list中不一樣的物件提取出來。前提條件是在比較前先給他們排序。同步idc資料 public bool syncidc var addvimopidcs from item in videidcs where vimopidcsids.co...