20175234 2018-2019-2 《Java程序設計》第八周學習總結
阿新 • • 發佈:2019-04-21
dex question align 大小 utf distance ons enc inf
目錄
- 20175234 2018-2019-2 《Java程序設計》第八周學習總結
- 教材學習內容總結
- 15.1泛型
- 15.2鏈表
- 15.3堆棧
- 15.4散列映射
- 15.5樹集
- 15.6樹映射
- 15.7自動裝箱與拆箱
- 教材學習中的問題和解決過程
- 代碼托管
- 學習進度條
- 參考資料
- 教材學習內容總結
20175234 2018-2019-2 《Java程序設計》第八周學習總結
教材學習內容總結
15.1泛型
- 泛型類聲明
Class 名稱<泛型列表>
,泛型列表給出的泛型可以作為類的成員變量的類型、方法的類型以及局部變量的類型。 - 使用泛型類聲明變量,與普通類相比,多了一對“<>”。Java泛型的主要目的:可以建立具有類型安全的數據結構,如列表散列表等。在使用這些泛類建立的數據結構時,不需要強制類型轉換,不要求進行運行時類型檢查。
15.2鏈表
- LinkedList
泛型類創建的對象以鏈表結構存儲數據,需要指明E的具體類型,如 LinkedList<String>mylist=new LinkedList<String>();
- 用add添加結點,例如
mylist.add(“How”);
mylist.add(“Are”);
…
- 常用方法
遍歷鏈表:可以用LinkedList類中的get(int index)返回當前鏈表第index個結點中的對象,也可以使用叠代器遍歷集合(找到集合中一個對象的同時,耶得到遍歷的後繼對象的引用)。由下圖可知,叠代器遍歷鏈表,更加快速。
- 排序與查找:Collections類提供了用於排序和查找的類方法如下:
public static sort(List<E> list)
按升序列,int binarySearch (List<T>list,T key,CompareTo<t> c)
洗牌與旋轉
* public static void shuffle(Listlist)按洗牌算法重新隨機排列
* static void rotate(Listlist ,int distance),旋轉鏈表中數據,distance取正值,向右旋轉list中數據(第一個值移到第二位,最後一位移到第一位),取負值向左旋轉list中數據。
* public static void reverse(Listlist),翻轉list中數據。
15.3堆棧
- 創建堆棧對象java.util包
Stack<E>
- 壓棧操作
public E push(E item )
- 彈棧操作
public E pop();
- 判斷是否有數據
public boolean empty();
有數據返回false,無返回true。 - 獲取堆棧頂端數據,但不刪除數據
public E peek();
- 獲取數據在堆棧中的位置,最頂端為1,向下依次累加,無則返回-1
public int search(Object data);
15.4散列映射
- 用HashMap<K,V>泛型類創建的對象稱作散列映射。
- 常用方法(p452)
* public void clear()
* public Object clone()
* public Boolean containsKey(Object key)
* public Boolean containsValue(Object value)
…… - 遍歷散列映射
- 基於散列映射的查詢
15.5樹集
- TreeSet
創建樹集。 - 樹集用add方法添加節點,節點會按其存放的數據的“大小”順序一層一層地依次排列,在同一層中的節點從左到右按“大小”順序遞增排列,下一層的都比上一層的小。
- TreeSet類的常用方法
- public boolean add(E o) 向樹集添加加節點。
- public void clear() 刪除樹集中的所有節點。
- public void contains(Object o) 如果樹集中有包含參數指定的對象,該方法返回true,否則返回false 。
- public E first() 返回樹集中的第一個節點中的數據(最小的節點)。
- public E last() 返回最後一個節點中的數據(最大的節點)。
- public isEmpty() 判斷是否是空樹集,如果樹集不含任何節點,該方法返回true 。
- public boolean remove(Object o) 刪除樹集中的存儲參數指定的對象的最小節點。
- public int size() 返回樹集中節點的數目。
15.6樹映射
- TreeMap<K,V>類實現了Map<K,V>接口,稱TreeMap<K,V>對象為樹映射。
- public V put(K key,V value); 添加節點。
15.7自動裝箱與拆箱
- JDK1.5新增的基本類型數據和相應的對象之間相互自動轉換的功能,稱作基本數據類型的自動裝箱與拆箱(Autoboxing and Auto-Unboxing of Primitive Types)。
教材學習中的問題和解決過程
問題1:
問題1在cmd中嘗試運行
- 問題2:從上圖可見,出現編碼JBK的不可映射字符問題
問題2解決方案:編碼JBK的不可映射字符
使用-encoding參數指明編碼方式:javac -encoding UTF-8 XX.java另一種思路
代碼托管
截圖
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 |
參考資料
Java學習筆記(第8版)
《Java學習筆記(第8版)》學習指導
編碼JBK的不可映射字符
20175234 2018-2019-2 《Java程序設計》第八周學習總結