類的構造器也可以實現過載
類的繼承體系結構
自動的拆裝箱
寫程式要考慮向後的相容性(新特性不能濫用)
鍊錶的實現 (用鍊錶實現堆疊或佇列都很方便)
檢視jdk linkedlist原始碼(該實現為雙向迴圈鍊錶)萬老師講的是單向非迴圈鍊錶:
該類內部使用了乙個靜態內部類entry ,相當與今晚上課時講的node類
private static class entry
}
也使用了頭結點:
private transient entryheader = new entry(null, null, null);
private transient int size = 0;
/*** constructs an empty list.
*/public linkedlist()
該實現是迴圈鍊錶 ,從以下**可知:
public e getlast()
問題一:如何判斷乙個鍊錶上存在環?
方法1:
用兩個臨時變數,步伐不一致,進行遍歷列表,如果存在環,則則兩個變數總會在某一時刻指向同一節點。
問題二:如何找到環的起點。
有點煩,用數學可以推出來,滿足一定的關係。也是相差n圈的問題。
快速排序法很重要啊。
static關鍵字
static關鍵字用來修飾變數,方法和內部類,稱這些變數,方法和內部類為靜態變數,靜態方法和靜態內部類
static關鍵字宣告乙個屬性或方法是和類相關的,而不是和類的某個特定的例項相關,因此,這類屬性或方法也稱為「類屬性」或「類方法」
如果訪問控制許可權允許,可不必建立該類物件而直接使用類名加「.」呼叫
static不可用於修飾構造器
設計模式:
單例設計模式
1,將構造器設為私有,向外提供乙個獲取單一例項的藉口。
運用double check技術,在多執行緒環境下保證生成唯一的例項
private singleton instance = null;
private singleton(){}
public static singleton getinstance()
}} return instance;
}}
2,靜態初始化例項,同時將構造器設為私有,提供返回該例項的藉口。
public static singleton instance = new singleton();
看到以下寫法,不知靜態內部類的用意何在?
public class singleton
public static singleton getinstance()
}
Java實現單鏈表 多鍊錶
如果讓你儲存多個物件,你第一時間想到的肯定是陣列,但是如果讓你儲存多個任意物件呢?這時我們會想到用object型的陣列來解決。object data new object 3 但是陣列是乙個長度固定的線性結構,在實際開發中,不論我們的內容不足或過多,都有可能造成空間的浪費,所以我們可以使用乙個鍊錶來...
鍊錶 java實現
package com.shine.linearlist 單鏈表結點類 public class node public node package com.shine.linearlist 線性表介面 2015 01 19 qizhang public inte ce llist package c...
鍊錶 java實現雙向鍊錶
前面已經總結了單向鍊錶,有興趣的兄弟可以進我部落格看一下。大家對比就可以看出,實現同樣的功能單向鍊錶要比雙向鍊錶痛苦的多。所以呀不斷地總結前輩留下的東西,是社會進步的基礎呀。可以直接看linkedlist的原始碼,其就是個雙向鍊錶。一 雙向鍊錶的結構。1 首先節點的結構,其中包含本節點內容,同時需要...