原创 Java集合類

一、Java類集位於Java.util包下 二、Collection接口及其子接口List與Set。 1、Collection接口(JDK1.2)的繼承實現結構 1)Collection繼承了Iterable接口(JDK1.5) 可使用

原创 Java實現ChatRoom

基於連接通信Socket、多線程的Java聊天室 1、開發環境: IDEA2018.1+JDK1.8 2、實現功能: 實現了模擬登錄註冊、羣聊、私聊、顯示當前在線人數列表; 在發送信息時,會向對方發送者及顯示發送時間; 顯示在線人數列表時

原创 Java鏈表應用

鏈表類 public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val;

原创 七大排序算法之快速、冒泡

冒泡排序 思想:循環n次,交換左右兩側數據 時間複雜度: 平均:O(N^2) 最好:O(N) 平均:O(N^2) 空間複雜度:O(1) 穩定性:穩定排序 代碼實現: // 左右兩側比較 public static void bubble

原创 棧和隊列試題總結

1、實現一個棧,要求實現Push(出棧)、Pop(入棧)、Min(返回最小值)的時間 複雜度爲O(1) 方法1:使用一個棧實現,交叉棧 #pragma once #include<stdio.h> #define MAX_VALUE

原创 Java三大類

1、總結String、Object、包裝類的常用方法以及注意點;String類String類的兩種實例化方法        直接賦值            String str = "hello";//字符串常量,爲字符串的匿名對象   

原创 線程同步總結

線程同步兩大方式 1、synchronized:內鍵鎖,JDK1.0作爲關鍵字提供的同步手段 1)同步代碼塊(推薦使用,鎖粒度較細) 使用內鍵鎖作用於方法中; 同一時刻只能有一個線程進入的代碼塊,方法內仍是多線程 synchronize

原创 七大排序算法之堆排、選擇

選擇排序 思想:循環一次找到一個最小值(最大值),縮小排序一個長度。 時間複雜度: 平均:O(N^2) 最好:O(N^2) 最壞:O(N^2) 空間複雜度:O(1) 穩定性:不穩定排序 實現代碼: public static void

原创 七大排序算法之希爾、插入

插入排序 在大概率有序的或者元素較小(20個左右)的情況下使用; 思想: 將無序部分插入到有序的部分 找要插入的位置:(兩種方法) 1、順序查找(在大概率有序情況下) 2、二分查找(無序情況下,較順序查找較快) 時間複雜度: 平均:O(N

原创 隊列的操作實現

隊列,先進先出(FIFO)          只允許在一端(隊尾)進行插入操作(入隊列),在另一端(對頭)進行刪除操作(出隊列)順序隊列操作實現:        用單鏈表實現#pragma once #include<stdio.h>

原创 鏈表試題總結

// 倒敘打印鏈表void ReversePrint(SListNode *pFirst);// 逆置鏈表SListNode * ReverseList(SListNode *pFirst);// 刪除非尾無頭鏈表void RemoveN

原创 Java多線程的創建與線程狀態的轉換

一、線程創建 第一種方式:繼承Thread類,覆寫run( ) run( )是線程操作的核心方法,是每個線程的入口 run()是由JVM創建完本地操作系統級線程後回調的方法,不可手工調用,否則就是普通方法 通過調用Thread類的star

原创 樹的定義與操作

樹    有一個特殊的結點,稱爲根結點,根節點沒有前驅結點     除根節點外,其餘結點被分成M(M>0)個互不相交的集合T1、T2、……、Tm,其中每一個集合Ti(1<= i <= m)又是一棵結構與樹類似 的子樹。每棵子樹的根結點有且

原创 Java泛型總結

一、概念解釋 泛型類: 引出:JDK1.5,爲了解決程序中向下轉型出現的參數轉換安全問題 解釋:類在定義的時候不會設置屬性或方法參數的具體類型,而是使用時定義 基本語法:MyClass類就是一個泛型類 class MyClass<T>

原创 七大算法之歸併排序

歸併排序: 前提:加入兩個數組有序,合併兩個有序數組就是有序的 思路:與快排相同的分治思想 數組中只有一個元素,該數組就是有序的, 數組中沒有元素,該數組就是有序的。 將大數組切成一個個有序的小數組 時間複雜度: 平均:O(NlgN) 最