原创 java 適配器模式解析

1.定義 將一個類的接口轉換成客戶希望的另外一個接口,使得原本由於接口不兼容而不能一起工作的那些類能一起工作。   2.分類 分爲類結構型模式和對象結構型模式兩種,前者類之間的耦合度比後者高,且要求程序員瞭解現有組件庫中的相關組件的內部結

原创 java 原型模式解析

由於 Java 提供了對象的 clone() 方法,所以用 Java 實現原型模式很簡單。 1. 模式的結構 原型模式主要包含以下角色: (1)抽象原型類:規定了具體原型對象必須實現的接口。 (2)具體原型類:實現抽象原型類的 clone

原创 java 工廠模式解析

1.概念 工廠方法(FactoryMethod)模式的定義:定義一個創建產品對象的工廠接口,將產品對象的實際創建工作推遲到具體子工廠類當中。這滿足創建型模式中所要求的“創建與使用相分離”的特點。 2.優缺點 (1)優點 用戶只需要知道具體

原创 java 單例模式解析

主要思想:   1.介紹與樣例 (1)懶漢模式 (2)餓漢模式 單例模式的結構與實現   2.爲何使用private,static,final? 單例模式中爲什麼要使用final和static?   3.懶漢模式線程不安全,如何解決?

原创 java 實現對象的淺拷貝 深拷貝的方法,重寫clone方法

如果想要深拷貝一個對象, 這個對象必須要實現Cloneable接口,實現clone方法,並且在clone方法內部,把該對象引用的其他對象也要clone一份 詳解Java中的clone方法   1.淺拷貝 在java中,對象創建後需要有一

原创 java 抽象工廠模式解析

1.概念 是一種爲訪問類提供一個創建一組相關或相互依賴對象的接口,且訪問類無須指定所要產品的具體類就能得到同族的不同等級的產品的模式結構。 抽象工廠模式是工廠方法模式的升級版本,工廠方法模式只生產一個等級的產品,而抽象工廠模式可生產多個等

原创 java comparator 二維數組進行排序

  //定義一個二維數組,其中所包含的一維數組具有兩個元素 對於一個已定義的二位數組a經行如下規則排序,首先按照每一個對應的一維數組第一個元素進行升序排序(即a[][0]), 若第一個元素相等,則按照第二個元素進行升序排序(a[][1])

原创 java list轉爲二維數組

//裝入int數組 List<int []> res=new ArrayList<>(); for(int i=0;i<10;i++){ int []arr={i,i+1}; res.add(arr); } //注意t

原创 leetcode k個一組反轉鏈表

leetcode 25 給你一個鏈表,每 k 個節點一組進行翻轉,請你返回翻轉後的鏈表。 k 是一個正整數,它的值小於或等於鏈表的長度。 如果節點總數不是 k 的整數倍,那麼請將最後剩餘的節點保持原有順序。   示例: 給你這個鏈表:1-

原创 動態規劃02 01揹包問題及拓展

參考鏈接 動態規劃問題——0/1揹包問題(Java實現)

原创 java1.8 抽象類與接口辨析

參考鏈接: java中的接口(jdk1.8)與抽象類

原创 java 冒泡排序

思想:arr[j]從尾部冒泡,把小的元素一步步放置到數組前面 package sort; import java.util.Scanner; public class BubbleSort { public static void

原创 Java 抽象工廠模式--理解接口的使用

  裏面處理農場 動物 蔬菜的關係,即同一種族的功能用接口抽象封裝起來,具體的品種再用具體的類。 裏面的代碼對接口的使用,對象的封裝抽象有很大幫助 http://c.biancheng.net/view/1351.html

原创 Java BFS 鄰接表實現

鄰接表實現:  使用vector數組存儲節點,每個vector[i]表示當前節點i,裏面存儲連接到的節點 用隊列linkedList做廣度優先遍歷,用LinkedHashSet做訪問數組visited,記錄訪問過的節點並加入未訪問的新節點

原创 Java Collection集合繼承關係圖

  參考鏈接1