轉(zhuǎn)載請(qǐng)注明出處:http://www.reibang.com/p/64b622a12415
1.集合框架(去除ArrayList中重復(fù)自定義對(duì)象元素(掌握)
- A:案例演示
- 需求:ArrayList去除集合中自定義對(duì)象元素的重復(fù)值(對(duì)象的成員變量值相同)
- B:注意事項(xiàng)
- 重寫equals()方法的
contains方法底層用equals方法進(jìn)行判斷犀斋,要判斷值相等,就要重寫equals方法
remove方法底層也是依賴于equals方法(沒重寫equals方法前比較的是地址值)
- 重寫equals()方法的
2.LinkedList的特有功能(掌握)
- A:LinkedList類概述
- B:LinkedList類特有功能
- public void addFirst(E e)及addLast(E e)
- public E getFirst()及getLast()
- public E removeFirst()及public E removeLast()
- public E get(int index);
3.棧和隊(duì)列數(shù)據(jù)結(jié)構(gòu)(掌握)
- 棧
- 先進(jìn)后出 (LIFO表)(Last In First Out)
- 隊(duì)列
- 先進(jìn)先出(FIFO表) (First In First Out)
4.泛型概述和基本使用(掌握)
- A:泛型概述
- B:泛型好處
- 提高安全性(將運(yùn)行期的錯(cuò)誤轉(zhuǎn)換到編譯期)
- 省去強(qiáng)轉(zhuǎn)的麻煩
- C:泛型基本使用
- <>中放的必須是引用數(shù)據(jù)類型
- D:泛型使用注意事項(xiàng)
- 前后的泛型必須一致,或者后面的泛型可以省略不寫(1.7的新特性菱形泛型)
補(bǔ)充:泛型擦除
查看下述兩個(gè)方法:
public void show(ArrayList<String> list) {}
public void show(ArrayList<Integer> list){}
* 上述兩個(gè)方法是不會(huì)形成方法的重載的情连,會(huì)報(bào)方法已存在的錯(cuò)誤闪水。 原因:泛型擦除
* 泛型是1.5中引入的一個(gè)新的概念,由于不用進(jìn)行強(qiáng)制轉(zhuǎn)換類型了蒙具,所以具有較高的安全性和易用性球榆。
* 因?yàn)榉盒推鋵?shí)只是在編譯器中實(shí)現(xiàn)的而虛擬機(jī)并不認(rèn)識(shí)泛型
- ,所以要在虛擬機(jī)中將泛型類型進(jìn)行擦除禁筏。也就是說持钉,在編譯階段使用泛型,運(yùn)行階段取消泛型篱昔,即擦除每强。
- 擦除是將泛型類型以其父類代替始腾,如String變成了Object等。
- 其實(shí)在使用的時(shí)候還是進(jìn)行帶強(qiáng)制類型的轉(zhuǎn)化空执,只不過這是比較安全的轉(zhuǎn)換浪箭,因?yàn)樵诰幾g階段已經(jīng)確保了數(shù)據(jù)的一致性。
5.ArrayList存儲(chǔ)字符串和自定義對(duì)象并遍歷泛型版(掌握)
- A:案例演示
- ArrayList存儲(chǔ)字符串并遍歷泛型版
6.泛型的由來(了解)
- A:案例演示
- 泛型的由來:通過Object轉(zhuǎn)型問題引入
- 早期的Object類型可以接收任意的對(duì)象類型辨绊,但是在實(shí)際的使用中奶栖,會(huì)有類型轉(zhuǎn)換的問題。也就存在這隱患门坷,所以Java提供了泛型來解決這個(gè)安全問題宣鄙。
7.泛型的由來(了解)
- A:案例演示
- 泛型的由來:通過Object轉(zhuǎn)型問題引入
- 早期的Object類型可以接收任意的對(duì)象類型,但是在實(shí)際的使用中默蚌,會(huì)有類型轉(zhuǎn)換的問題冻晤。也就存在這隱患,所以Java提供了泛型來解決這個(gè)安全問題绸吸。
8.泛型方法的概述和使用(了解)
- A:泛型方法概述
- 把泛型定義在方法上
- B:定義格式
- public <泛型類型> 返回類型 方法名(泛型類型 變量名)
- C:案例演示
- 泛型方法的使用
9.泛型接口的概述和使用(了解)
- A:泛型接口概述
- 把泛型定義在接口上
- B:定義格式
- public interface 接口名<泛型類型>
- C:案例演示
- 泛型接口的使用
10.泛型高級(jí)之通配符(了解)
- A:泛型通配符<?>
- 任意類型鼻弧,如果沒有明確,那么就是Object以及任意的Java類了
- B:? extends E
- 向下限定锦茁,E及其子類
- C:? super E
- 向上限定温数,E及其父類
11.增強(qiáng)for的概述和使用(掌握)
- A:增強(qiáng)for概述
- 簡(jiǎn)化數(shù)組和Collection集合的遍歷
- B:格式:
for(元素?cái)?shù)據(jù)類型 變量 : 數(shù)組或者Collection集合) { 使用變量即可,該變量就是元素 }
- C:案例演示
- 數(shù)組蜻势,集合存儲(chǔ)元素用增強(qiáng)for遍歷
- D:好處
- 簡(jiǎn)化遍歷
12.三種迭代的能否刪除(掌握)
- 普通for循環(huán),可以刪除,但是索引要--
- 迭代器,可以刪除,但是必須使用迭代器自身的remove方法,否則會(huì)出現(xiàn)并發(fā)修改異常
- 增強(qiáng)for循環(huán)不能刪除
13.靜態(tài)導(dǎo)入的概述和使用(掌握)
- A:靜態(tài)導(dǎo)入概述
- B:格式:
- import static 包名….類名.方法名;
- 可以直接導(dǎo)入到方法的級(jí)別
- C:注意事項(xiàng)
- 方法必須是靜態(tài)的,如果有多個(gè)同名的靜態(tài)方法撑刺,容易不知道使用誰?這個(gè)時(shí)候要使用,必須加前綴握玛。由此可見够傍,意義不大,所以一般不用挠铲,但是要能看懂冕屯。
14.可變參數(shù)的概述和使用(掌握)
- A:可變參數(shù)概述
- 定義方法的時(shí)候不知道該定義多少個(gè)參數(shù)
- B:格式
- 修飾符 返回值類型 方法名(數(shù)據(jù)類型… 變量名){}
- C:注意事項(xiàng):
- 這里的變量其實(shí)是一個(gè)數(shù)組
- 如果一個(gè)方法有可變參數(shù),并且有多個(gè)參數(shù)拂苹,那么安聘,可變參數(shù)肯定是最后一個(gè)
15.Arrays工具類的asList()方法的使用(掌握)
- A:案例演示
- Arrays工具類的asList()方法的使用
- Collection中toArray(T[] a)泛型版的集合轉(zhuǎn)數(shù)組
16.集合嵌套之ArrayList嵌套ArrayList(掌握)
- A:案例演示
- 集合嵌套之ArrayList嵌套ArrayList