原创 數據結構:串

一、串的定義 串(string)是由零個或多個字符組成的有限序列,又名叫字符串。 一般記爲s=”a1a2……an”(n≥0),其中s是字符串的名稱,用雙引號括起來的字符序列是串的值,引號不屬於串的內容。ai(1 ≤ i ≤ n)可

原创 final修飾符

final關鍵字用於修飾類、變量和方法,final關鍵字有點類似於C#裏的sealed關鍵字,用於表示它修飾的類、方法和變量不可改變。 final修飾變量時,表示一旦獲得了初始值就不可被改變,final既可以修飾成員變量(包括類變

原创

一、棧的定義 1.棧的定義 棧(stack)是限定僅在表尾進行插入和刪除操作的線性表。 我們把允許插入和刪除的一端稱爲棧頂(top),另一端稱爲棧底(bottom),不含任何數據元素的稱爲空棧。棧又稱爲後進先出(Last In F

原创 隊列

隊列(queue)是隻允許在一段進行插入操作,而在另一端進行刪除操作的線性表。 隊列是一種先進先出(First In First Out)的線性表,簡稱FIFO。允許插入的一端稱爲隊尾,允許刪除的一端稱爲隊頭。 假設隊列是q =

原创 算法的時間複雜度

一、 時間複雜度定義 在進行算法分析時,語句總的執行次數T(n)是關於問題規模n的函數,進而分析T(n)隨n的變化情況並確定T(n)的數量級。 算法的時間複雜度,也就是算法的時間量度,記作:T(n) = O(f(n))。它表示隨

原创 內部類

大部分時候,類被定義成一個獨立的程序單元。在某些情況下,也會把一個類放在另一個類的內部定義,這個定義在其他類內部的類就被稱爲內部類(有的地方也叫嵌套類),包含內部類的類也被稱爲外部類(有的地方也叫宿主類)。 Java從JDK1.1

原创 線性表的基本概念

一、線性表的定義 線性表:零個或多個數據元素的有限序列。 幾個關鍵的地方。 首先它是一個序列。也就是說,元素之間是有順序的,若元素存在多個,則第一個元素無前驅,最後一個元素無後繼,其他每個元素都只有一個前驅和後繼。 然後,線性表

原创 Java集合類

Java集合類是一種特別有用的工具類,可用於存儲數量不等的對象,並可實現常用的數據結構,如棧、隊列等。除此之外,Java集合還可用於保存具有映射關係的關聯數組。 Java集合大致可以分爲Set、List、Map和Queue四種體系

原创 Java接口詳解

抽象類是從多個類中抽象出來的模板,如果將這種抽象進行得更徹底,則可以提煉出一種更加特殊的”抽象類“——接口(interface),接口裏包普通方法,接口裏的所有方法都是抽象方法。Java 8對接口進行了改進,允許在接口中定義默認方

原创 Scanner獲取鍵盤輸入

java.util.Scanner是JDK1.5的新特性,主要功能是簡化文本掃描。 使用Scanner類可以很方便地獲取用戶的鍵盤輸入,Scanner是一個基於正則表達式的文本掃描器。它可以從文件、輸入流、字符串中解析出基本類型值

原创 Java 8的日期、時間類

Java原本提供了Data和Calendar用於處理日期、時間的類,包括創建日期、時間對象,獲取系統當前日期、時間等操作。但Date不僅無法實現國際化,而且它對不同屬性也使用了前後矛盾的偏移量,比如月份與小時都是從0開始的,月份中

原创 Object類

Object類是所有類、數組、枚舉類父類,也就是說,Java允許把任何類型的對象賦給Object類型變量。當定義一個類時沒有使用extends關鍵字爲它顯式指定父類,則該類默認繼承Object父類。 因爲所有Java類都是Obje

原创 String、StringBuffer和StringBuilder類比較

字符串就是一連串字符序列,Java提供了String和StringBuffer兩個類來封裝字符串,並提供一系列方法來操作字符串對象。 String類是不可變類,即一旦一個String對象被創建以後,包含在這個對象中的字符串是不可改

原创 Java基礎——處理對象

Java對象都是Object類的實例,都可直接調用該類中定義的方法,這些方法提供了處理Java對象的通用方法。 一、打印對象和toString方法 先看下面程序。 class Person { private String

原创 抽象類

當編寫一個類時,常常會爲該類定義一些方法,這些方法用於描述該類的行爲方式,那麼這些方法都有具體的方法體。但在某些情況下,某個父類只是知道其子類應該包含怎樣的方法,但無法知道這些子類如何實現這些方法。例如定義了一個Shape類,這個