一丶查找html
public static <T extends Comparable<T>>boolean linearSearch(T[] data,int min,int max,T target)
二丶排序java
問題:建立泛型方法與建立一個引用泛型參數的類有何區別?git
問題解決方案:算法
//此處T能夠隨便寫爲任意標識,常見的如T、E、K、V等形式的參數經常使用於表示泛型 //在實例化泛型類時,必須指定T的具體類型 public class Generic<T>{ //key這個成員變量的類型爲T,T的類型由外部指定 private T key; public Generic(T key) { //泛型構造方法形參key的類型也爲T,T的類型由外部指定 this.key = key; } public T getKey(){ //泛型方法getKey的返回值類型爲T,T的類型由外部指定 return key; } } //泛型的類型參數只能是類類型(包括自定義類),不能是簡單類型 //傳入的實參類型需與泛型的類型參數類型相同,即爲Integer. Generic<Integer> genericInteger = new Generic<Integer>(123456); //傳入的實參類型需與泛型的類型參數類型相同,即爲String. Generic<String> genericString = new Generic<String>("key_vlaue"); Log.d("泛型測試","key is " + genericInteger.getKey()); Log.d("泛型測試","key is " + genericString.getKey());
注意數組
在java中,泛型類的定義很是簡單,可是泛型方法就比較複雜了。數據結構
尤爲是咱們見到的大多數泛型類中的成員方法也都使用了泛型,有的甚至泛型類中也包含着泛型方法,這樣在初學者中很是容易將泛型方法理解錯了。學習
泛型類,是在實例化類的時候指明泛型的具體類型;泛型方法,是在調用方法的時候指明泛型的具體類型 。測試
/* 泛型方法的基本介紹 傳入的泛型實參 return T 返回值爲T類型 說明: 1)public 與 返回值中間<T>很是重要,能夠理解爲聲明此方法爲泛型方法。 2)只有聲明瞭<T>的方法纔是泛型方法,泛型類中的使用了泛型的成員方法並非泛型方法。 3)<T>代表該方法將使用泛型類型T,此時才能夠在方法中使用泛型類型T。 4)與泛型類的定義同樣,此處T能夠隨便寫爲任意標識,常見的如T、E、K、V等形式的參數經常使用於表示泛型。 */ public <T> T genericMethod(Class<T> tClass)throws InstantiationException , IllegalAccessException{ T instance = tClass.newInstance(); return instance; }
問題:使用線性查找法對Contact類對象進行查找時出現錯誤,查找數組中已有對象返回false
this
問題解決方案:.net
//線性查找法 public static <T> boolean linearSearch(T[] data, int min, int max, T target) { int index = min; boolean found = false; while (!found && index <= max) { found = data[index].equals(target); index++; } return found; }
經過與結對夥伴討論得知.equals
方法是Object類裏的方法,對Object類對象可以正常使用,可是對本身建立的類不能正常使用,Contact類就是本身寫的類,判斷是否相等必須本身再寫一個判斷是否相等的方法來實現。
public boolean equal(Contact other){ if (lastName.equals(other.lastName)&&firstName.equals(other.firstName)&&phone.equals(other.phone)) return true; else return false; }
上週無錯題!!!
本週的主要學習內容是對查找和排序方法的實現的學習,有一個較深的感觸就是理解算法與實現算法仍是有較大距離的,在算法的實現過程當中總會出現各類各樣的bug,須要耐下心來經過調試解決問題!本週收穫仍是挺多的,繼續努力吧!!!
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 0/0 | 1/1 | 4/4 | |
第二週 | 464/464 | 1/2 | 10/14 | 理解掌握了用數組和鏈表實現棧的方法 |
第三週 | 494/958 | 1/3 | 10/24 | 理解掌握了用數組和鏈表實現隊列的方法 |
第四周 | 1629/2587 | 2/5 | 20/44 | 對用鏈表和數組實現列表進行了學習 |
第五週 | 856/3443 | 2/6 | 15/59 | 較爲深刻的學習了查找和排序方法的實現 |
計劃學習時間:20小時
實際學習時間:15小時
改進狀況:提升學習的效率,保證學習的質量,遇到難題不要慌,耐下心來解決問題!!!