Leetcode 34 Find First and Last Position of Element in Sorted Array
阿新 • • 發佈:2020-10-25
1.StudentDaoListImpl.java與StudentDaoArrayImpl.java有何不同?
StudenDaoListImpl.java是用列表的方式儲存學生資訊,StudentDaoArrayImpl.java是用陣列來儲存學生資訊。兩者在查詢和新增兩個方法有所不同,查詢:StudenDaoListImpl.java從頭開始判斷名字是否相同,StudentDaoArrayImpl.java先要判斷該元素不為空,在判斷名字是否相同;新增:StudenDaoListImpl.java直接用列表的add方法在列表末尾新增,StudentDaoArrayImpl.java是從頭開始找空的元素,將其存放進去。兩者的顯示方法差不多。
2.StudentDao.java檔案是幹什麼用的?為什麼裡面什麼實現程式碼都沒有?
定義一個StudentDao介面,裡面有三個方法的宣告,其他類通過繼承StudentDao類,實現StudentDao.java檔案中的方法,子類可以有著相同的三個方法宣告,不同的子類也可以根據不同的要求寫出不一樣的方法程式碼。
3. 使用搜索引擎搜尋“Java DAO”,選出幾句你能看懂的、對你最有啟發的話。請結合介面知識去理解。
4. 嘗試執行Test.java。根據註釋修改相應程式碼。結合參考程式碼回答使用DAO模式有什麼好處?
package stumanagement; public class Test { public static void main(String[] args) { Student[] students = new Student[3]; students[0] = new Student("Tom"); students[1]= new Student("Jerry"); students[2] = new Student("Sophia"); StudentDao sdm = new StudentDaoArrayImpl(50);//使用陣列實現 //StudentDao sdm = new StudenDaoListImpl();//使用列表實現 //往後臺寫資料,無需考慮後臺是什麼(到底是資料庫、檔案、陣列、List) //因為這裡是面向StudentDao介面 System.out.println("===========寫入學生========"); for(Student e:students){ if (!sdm.addStudent(e)){ System.out.println("新增學生失敗"); }else{ System.out.println("插入成功!!"); } } System.out.println("===========顯示所有學生========"); sdm.diplayAllStudents(); System.out.println("===========查詢學生========"); Student temp = sdm.getStuByName("Tom") ; if(temp == null){ System.out.println("查無此人"); }else{ System.out.println(temp); } } }
兩個類都繼承了StudentDao,執行結果相同。