1、單向鏈表java
1.單向鏈表:每一個元素都稱爲節點(Entry),每一個節點都由兩部分組成node
2.單向鏈表的注意點:git
(1)單向鏈表每個節點在內存中存儲上在空間位置上是無規律的;github
(2)爲何單向鏈表的查詢效率變低?由於單向鏈表中的每一個元素在空間的存儲位置上沒有規律,也沒有順序,那麼在查找某個元素的時候,必須從頭節點挨着日後找,直到找到爲止。數組
(3)爲何單向鏈表的增刪效率高?由於鏈表中每一個元素存儲空間是沒有順序的,刪除或者添加某個元素,只須要讓指針從新指向便可,不須要將其餘元素進行惟一,因此隨機增刪效率高。微信
(4)僞代碼學習
public class Linked{ //節點 Entry entry; //內部類 static class Entry{ Object o; Entry next; } }
(5)舉例代碼大數據
package com.bjpowernode.java_learning; /** * 使用java語言用來模擬單向鏈表 * @author lenovo1 * */ public class D83_1_SingleLinkedList { public static void main(String[] args) { } //節點 //Field Entry entry; // Constructor D83_1_SingleLinkedList(){ //只有一個頭節點 entry = new Entry(null,null); } //靜態內部類 static class Entry{ //Field Object data; Entry next; //Constructor Entry(){} Entry(Object data,Entry next){ this.data = data; this.next = next; } } }
2、雙向鏈表ui
1.雙向鏈表是一個環狀。this
2.雙向鏈表的注意點:
與單項鍊表的特色基本一致,查詢效率變低,可是增刪效率高
3.僞代碼
public class LinkedList{ //節點 Entry entry; //靜態內部類 static class Entry{ Entry previous; Object data; Entry next; } }
3、Collections集合的經常使用方法
1.boolean add(Object element);向集合中添加某個元素
2.void clear();清空集合
3.boolean contains(Object o);判斷集合中是狗包含某個程序
4.boolean isEmpty();判斷集合是否含有元素
5.Iterator<E> iterator();獲取集合所依賴的迭代器對象
6.boolean remove(Object o);刪除集合中某個元素
7.boolean removeAll(Collection<?> c)
移除此collections中那些也包含在指定collections中的全部元素(可選操做)
8.boolean retainAll(Collections<?> c)
僅保留此collectionss中那些也包含在指定collections的元素(可選操做)
9.int size();返回此collections中的元素數
10.Object[] toArray() ;返回包含此collections中的全部元素的數組
11.<T> T[] toArray(T[] a)返回包含此collections中的全部元素的數組,;返回數組的運行是類型與指定數組的運行時類型相同。
5、源碼:
D83_1_SingleLinkedList.java
D83_2_CollectionsCommonMethod.java
https://github.com/ruigege66/Java/blob/master/D83_1_SingleLinkedList.java
https://github.com/ruigege66/Java/blob/master/D83_2_CollectionsCommonMethod.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料。