這里有我之前上課總結(jié)的一些知識點以及代碼大部分是老師講的筆記 個人認為是非常好的,,也是比較經(jīng)典的內(nèi)容,真誠的希望這些對于那些想學(xué)習(xí)的人有所幫助!
由于代碼是分模塊的上傳非常的不便。也比較多,講的也是比較清晰的!如果你有需要可以在評論中留下您的郵箱我看到一定會免費發(fā)給你的!感謝這個平臺讓我們大家共同進步吧!! 記住 程序員是無私的!!!
也非常歡迎到我的博客內(nèi)觀看 博客地址:http://m.survivalescaperooms.com/duscl/
/*1:對象數(shù)組(掌握) (1)數(shù)組既可以存儲基本數(shù)據(jù)類型,也可以存儲引用類型。它存儲引用類型的時候的數(shù)組就叫對象數(shù)組。 (2)案例: 用數(shù)組存儲5個學(xué)生對象,并遍歷數(shù)組。2:集合(Collection)(掌握) (1)集合的由來? 我們學(xué)習(xí)的是java -- 面向?qū)ο?-- 操作很多對象 -- 存儲 -- 容器(數(shù)組和StringBuffer) -- 數(shù)組 而數(shù)組的長度固定,所以不適合做變化的需求,Java就提供了集合供我們使用。 (2)集合和數(shù)組的區(qū)別? A:長度區(qū)別 數(shù)組固定 集合可變 B:內(nèi)容區(qū)別 數(shù)組可以是基本類型,也可以是引用類型 集合只能是引用類型 C:元素內(nèi)容 數(shù)組只能存儲同一種類型 集合可以存儲不同類型(其實集合一般存儲的也是同一種類型) (3)集合的繼承體系結(jié)構(gòu)? 由于需求不同,Java就提供了不同的集合類。這多個集合類的數(shù)據(jù)結(jié)構(gòu)不同,但是它們都是要提供存儲和遍歷功能的, 我們把它們的共性不斷的向上提取,最終就形成了集合的繼承體系結(jié)構(gòu)圖。 Collection |--List |--ArrayList |--Vector |--LinkedList |--Set |--HashSet |--TreeSet (4)Collection的功能概述(自己補齊) A:添加功能 B:刪除功能 C:判斷功能 D:獲取功能 E:長度功能 F:交集(了解) G:把集合轉(zhuǎn)數(shù)組(了解) (5)Collection集合的遍歷 A:把集合轉(zhuǎn)數(shù)組(了解) B:迭代器(集合專用方式) (6)迭代器 A:是集合的獲取元素的方式。 B:是依賴于集合而存在的。 C:迭代器的原理和源碼。 a:為什么定義為了一個接口而不是實現(xiàn)類? b:看了看迭代器的內(nèi)部類實現(xiàn)。 (7)Collection集合的案例(遍歷方式 迭代器) 集合的操作步驟: A:創(chuàng)建集合對象 B:創(chuàng)建元素對象 C:把元素添加到集合 D:遍歷集合 A:存儲字符串并遍歷 import java.util.Collection; import java.util.ArrayList; import java.util.Iterator; public class CollectionDemo { public static void main(String[] args) { //創(chuàng)建集合對象 Collection c = new ArrayList(); //創(chuàng)建并添加元素 c.add("hello"); c.add("world"); c.add("java"); //遍歷集合 Iterator it = c.iterator(); while(it.hasNext()) { String s =(String) it.next(); System.out.PRintln(s); } } } B:存儲自定義對象并遍歷 public class Student { private String name; private int age; public Student(){} public Student(String name,int age) { this.name = name; this.age = age; } //getXxx()/setXxx() } import java.util.Collection; import java.util.ArrayList; import java.util.Iterator; public class StudentDemo { public static void main(String[] args) { //創(chuàng)建集合對象 Collection c = new ArrayList(); //創(chuàng)建學(xué)生對象 Student s1 = new Student("林青霞",27); Student s2 = new Student("風(fēng)清揚",30); Student s3 = new Student("劉意",30); Student s4 = new Student("武鑫",25); Student s5 = new Student("劉曉曲",16); //添加元素 c.add(s1); c.add(s2); c.add(s3); c.add(s4); c.add(s5); //遍歷集合 Iterator it = c.iterator(); while(it.hasNext()) { Student s = (Student)it.next(); System.out.println(s.getName()+"---"+s.getAge()); } } }3:集合(List)(掌握) (1)List是Collection的子接口 特點:有序(存儲順序和取出順序一致),可重復(fù)。 (2)List的特有功能:(自己補齊) A:添加功能 B:刪除功能 C:獲取功能 D:迭代器功能 E:修改功能 (3)List集合的特有遍歷功能 A:由size()和get()結(jié)合。 B:代碼演示 //創(chuàng)建集合對象 List list = new ArrayList(); //創(chuàng)建并添加元素 list.add("hello"); list.add("world"); list.add("java"); //遍歷集合 Iterator it = list.iterator(); while(it.hasNext()) { String s =(String) it.next(); System.out.println(s); } System.out.println("----------"); for(int x=0; x<list.size(); x++) { String s =(String) list.get(x); System.out.println(s); } (4)列表迭代器的特有功能;(了解) 可以逆向遍歷,但是要先正向遍歷,所以無意義,基本不使用。 (5)并發(fā)修改異常 A:出現(xiàn)的現(xiàn)象 迭代器遍歷集合,集合修改集合元素 B:原因 迭代器是依賴于集合的,而集合的改變迭代器并不知道。 C:解決方案 a:迭代器遍歷,迭代器修改(ListIterator) 元素添加在剛才迭代的位置 b:集合遍歷,集合修改(size()和get()) 元素添加在集合的末尾 (6)常見數(shù)據(jù)結(jié)構(gòu) A:棧 先進后出 B:隊列 先進先出 C:數(shù)組 查詢快,增刪慢 D:鏈表 查詢慢,增刪快 (7)List的子類特點(面試題) ArrayList 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢。 線程不安全,效率高。 Vector 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢。 線程安全,效率低。 LinkedList 底層數(shù)據(jù)結(jié)構(gòu)是鏈表,查詢慢,增刪快。 線程不安全,效率高。 到底使用誰呢?看需求? 分析: 要安全嗎? 要:Vector(即使要,也不使用這個,后面再說) 不要:ArrayList或者LinkedList 查詢多;ArrayList 增刪多:LinkedList 什么都不知道,就用ArrayList。 (8)List集合的案例(遍歷方式 迭代器和普通for) A:存儲字符串并遍歷 B:存儲自定義對象并遍歷*/
新聞熱點
疑難解答