java基礎複習(10) 鍊錶實現,單例模式

2021-08-24 18:35:23 字數 1478 閱讀 6086

類的構造器也可以實現過載

類的繼承體系結構

自動的拆裝箱

寫程式要考慮向後的相容性(新特性不能濫用)

鍊錶的實現 (用鍊錶實現堆疊或佇列都很方便)

檢視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 首先節點的結構,其中包含本節點內容,同時需要...