class People<E>
html
其中People是泛型類的名稱,E是其中的泛型,也就是說咱們並無指定E是何種類型的數據,它能夠是任何對象或接口,但不能是基本類型數據。java
泛型類聲明和建立對象時,類名後多了一對「<>」,並且必需要用具體的類型替換「<>」中的泛型。例如:git
Cone<Circle> coneOne;
算法
coneOne =new Cone<Circle>(new Circle());
數據結構
1.LinkedList<E>
泛型類建立的對象以鏈表結構存儲數據,習慣上稱LinkedList
類建立的對象爲鏈表對象。例如,學習
LinkedList<String> mylist=new LinkedList<String>();
2.建立一個空雙鏈表。設計
add(E obj)
向鏈表依次增長節點調試
3.遍歷鏈表code
當用戶須要遍歷集合中的對象時,應當使用該集合提供的迭代器,而不是讓集合自己來遍歷其中的對象。因爲迭代器遍歷集合的方法在找到集合中的一個對象的同時,也獲得待遍歷的後繼對象的引用,所以迭代器能夠快速地遍歷集合。htm
鏈表對象可使用iterator()
方法獲取一個Iterator
對象,該對象就是針對當前鏈表的迭代器。
4.排序與查找
public static sort(List<E> list)
該方法能夠將list中的元素升序排列。
int binarySearch(List<T> list
, T key,CompareTo<T> c)
使用折半法查找list是否含有和參數key相等的元素,若是key鏈表中某個元素相等,方法返回和key相等的元素在鏈表中的索引位置
5.洗牌與旋轉
Collections
類還提供了將鏈表中的數據從新隨機排列的類方法以及旋轉鏈表中數據的類方法。
public static void shuffle(List<E> list)
將list中的數據按洗牌算法從新隨機排列。
static void rotate(List<E> list, int distance)
旋轉鏈表中的數據。
public static void reverse(List<E> list)
翻轉list中的數據。
堆棧是一種「後進先出」的數據結構,只能在一端進行輸入或輸出數據的操做。
Stack<E>
泛型類建立一個堆棧對象,堆棧對象經常使用方法:
public E push(E item);
實現壓棧操做
public E pop();
實現彈棧操做。
public boolean empty();
判斷堆棧是否還有數據。
public E peek();
獲取堆棧頂端的數據,但不刪除該數據。
public int search(Object data);
獲取數據在堆棧中的位置。
HashMap<K,V>
對象採用散列表這種數據結構存儲數據,習慣上稱HashMap<K,V>
對象爲散列映射。
例如:
HashMap<String,Student> hashtable= HashSet<String,Student>();
hashtable
能夠存儲「鍵/值」對數據。
TreeSet<E>
類建立的對象稱做樹集。
例如TreeSet<String> mytree=new TreeSe<String>;
而後使用add
方法爲樹集添加節點,例如mytree.add("boy");
樹集用add
方法添加節點,節點會按其存放的數據的「大小」順序一層一層地依次排列,在同一層中的節點從左到右按「大小」順序遞增排列,下一層的都比上一層的小
教材中代碼調試有問題先去https://shimo.im/doc/1i1gldfsojIFH8Ip/看看,若是別人沒有提出相同問題,能夠編輯文檔添加,而後把本身提出的問題複製到下面:
for(int k=0;k<student.length;k++) treemap.put(key[k],student[k]);
put方法不瞭解,不清楚此段的做用。
意爲將關鍵字與值聯繫起來
無
教材學習中的問題和解決過程, 一個問題加1分
代碼調試中的問題和解決過程, 一個問題加1分
基於評分標準,我給本博客打分:XX分。得分狀況以下:xxx
xxx
xxx
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 6/6 | 1/1 | 20/20 | |
第二週 | 245/251 | 1/2 | 18/38 | |
第三週 | 633/884 | 1/3 | 22/60 | |
第四周 | 305/1189 | 1/4 | 30/90 | |
第五週 | 410/1599 | 3/7 | 30/120 | |
第六週 | 1135/2734 | 3/10 | 30/150 | |
第七週 | 781/3515 | 3/13 | 30/180 | |
第八週 | 710/4225 | 3/16 | 30/210 |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
計劃學習時間:XX小時
實際學習時間:XX小時
改進狀況:
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)