- 博客(24)
- 收藏
- 关注
原创 java设计模式之------策略模式
策略模式策略模式:简单的说就是做一件事情有不同的方法即策略实现。策略模式包括3个角色: ● 环境(Context)角色:持有一个Strategy的引用。 ● 抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类 所需的接口。 ● 具体策略(Concr
2016-10-10 15:42:53
436
原创 java设计模式之----观察者(Observer)模式
观察者(Observer)模式观察者模式就是: 定义对象间一种一对多的依赖关系,使得当一个对象(被观察者)改变状态,则所有依赖于它的对象 (观察者)都会得到通知并被自动更新等等 包含4部分1. Subject被观察者。 是一个接口或者是抽象类,定义被观察者必须实现的职责,它必须能偶动态地增加、取
2016-10-08 19:27:30
410
原创 Android 如何实现RecyclerView横向滑动
Android 如何实现RecyclerView横向滑动代码可以分为几个模块,适配器,ViewHolder,布局,item 布局,Activity中设置横行滑动布局如下:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fresco="http://
2016-10-05 15:41:12
4958
原创 java设计模式之------Blduier模式
Blduier模式Blduier模式即构建者模式,将一个复杂对象的构建与它的表示相分离。使得同样的构建过程可以创建不同的表示。包括4个角色: --抽象构建者角色(Builder):给出一个抽象接口,以规范产品对象的各个组成成分的构建。 --具体构建者角色(Contrete Builder):实现Builder的接口和装配该产品的各个部件。
2016-09-30 13:07:13
573
原创 java设计模式之----工厂模式
设计模式之----工厂模式一.工厂模式专门负责大量有共同接口的类的实例化,工厂模式可以动态的决定实例化哪一个类。工厂模式可以分为3类---(1)简单工厂模式,又叫静态工厂方法模式---(2)工厂方法模式,又叫多态性工厂模式---(3)抽象工厂模式,又叫工具箱模式二.简单工厂模式,由一个工厂类决定创建哪一个产品。包括3个角色(工厂类根据参数不同,实例化不同的产品对象。不修
2016-09-26 19:42:47
485
原创 给定一个数组,如何构造一个二叉排序树(ADL)
构造二叉排序树构造一棵二叉排序树就是依次输入数据元素,将它们插入到二叉排序树中的适当位置上的过程。具体过程是:每次读入一个元素,就建立一个新的节点,若二叉排序树非空,则将新节点的值与根节点的值比较,如果小于根节点的值,则插入到左子树中,否则插到右子树中。若二叉排序树为空,则新节点作为二叉排序树的根节点。比如现在有数组{10,8,9,6,12,11,13}其构造二叉排序树的过程如下:
2016-09-26 11:54:11
25654
1
原创 8大排序之 -------冒泡排序 与时间复杂度
冒泡排序(一)冒泡排序基本思想:将相邻的两个数两两比较,按从小到大或者从大到小的顺序排好,不断将大的数(或者小的数)往下沉。(二)基本过程 比如我们现在要排序int a[] = {4,3,8,2,5}所以过程大概就是:通过每一趟的比较就会确认一个数的位置,那么在下一趟的比较重,比较的次数就会少一次。剩下的一次类推(三)代
2016-09-05 11:52:28
3096
原创 查找--------之分块查找
分块查找(一)分块查找又叫----索引顺序查找吸取了顺序查找和折半查找的优点,既有动态结构又适于快速查找。(二)分块查找的基本思想:-------将查找表(用于查找数据的集合)分为几块,块中的元素不必是有序的,但是块中元素是有序的。比如说第一块中的最大关键字小于第二块中的任一关键字;第二块中的最大关键字小于第三块的任一关键字,以此类推。再建一个索引表,索引表中的每个元素包含各块中最大的
2016-09-01 17:32:42
628
原创 comprable和comparator的区别
comprable和comparator的区别(一)comprable和comparator两个接口都是用于比较的。Compartor接口是Java.util包中的接口,而Comparable是java.lang包中的接口(二)comprable接口中只有一个 int compareTo(T o)方法,该方法返回一个整形值 comparator接口有两个方法
2016-08-29 21:56:08
1469
原创 二分法查找
二分法查找(一) 二分法查找又叫折半查找,对于已经按从小到大排好序的数组a[],当要查找某个元素b的时候,先计算(a.length - 1)/2 把该位置上的元素与b比较,如果b比a[(a.length - 1)/2]小,则在a[(a.length - 1)/2]的左边区间找。这是再算出左边区间的中间下标,又把该位置上的元素与b比较,依次类推。比如数组int a[]
2016-08-29 18:37:02
740
原创 8大排序之 ---------归并排序 与时间复杂度
归并排序与时间复杂度--------------------------讲归并排序之前,先讲讲什么事递归?递归就是自己调用自己。比如 f(x)= x^2+ f(x - 1)且f(0)=0;这个就是递归,比如你要求f(5)就必须先求出f(4)又得求出f(3)不断的递归下去直到f(0),这里要是没有f(0)=0,那么它就会一直递归下去直到负无穷。这是不允许的,所以f(0)=0是递归的
2016-08-29 15:02:29
1770
原创 8大排序之-------堆排序与时间复杂度
堆排序-------------------------------------------------- 在介绍堆排序之前先介绍一下什么是完全二叉树,完全二叉树就是在第n层被填满之前,不会开始填第n+1层深度,并且是从左向右填满------------------------------------------------------------------------
2016-08-26 19:52:49
5996
2
原创 8大排序之(五)------简单理解 基数排序 与时间复杂度
什么是基数排序?(一)基数排序的思想:把待排序的整数按位分,分为个位,十位.....从小到大依次将位数进行排序。实际上分为两个 过程:分配和收集。 分配就是:从个位开始,按位数从小到大把数据排好,分别放进0--9这10个桶中;
2016-08-22 19:25:47
10346
1
原创 8大排序之----快速排序与时间复杂度
快速排序(一)快速排序基本思想:采用分治的思想,从待排序的数据中选一个数作为基数(一般是第一个数), 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 再对左右区间重复第二步,直到各区间只有一个
2016-08-16 13:34:13
1038
原创 8大排序之-----(3)选择排序与时间复杂度
选择排序与时间复杂度(一)选择排序的基本思想:选择排序就是每一次从待排序的数据中选出最小的元素,放到已经排好序的数据的最后位 置,直到全部元素排好序。(二)解析过程:比如现在待排序的数据是int s[] = {3,1,5,4,6,8,7,9,0,2} 第一趟,首先s
2016-08-15 14:26:49
1683
1
原创 8大排序之---(2)希尔排序
希尔排序 (一)基本思想:希尔排序: 其实就是加强版的插入排序。首先把待排序的数据根据增量分成几个子序列,对子序列进行插入排序, 直到增量为1,直接进行插入排序; 增量 的选择:一般为数组长度的二分之一,再变为原来增量的二分之一....直到增量为1比如数据:int a []
2016-08-12 14:24:42
630
原创 8大排序之-----(一)插入排序与时间复杂度
(一)什么是插入排序呢? 插入排序就是每次把待排序的数据一个数据插入到已经排好序的正确位置。就好比,你左手拿着扑克牌,用右手去取牌的时候,把取到的牌放到左手正确的位置。比如我们要排序4,3,5,7,6,2,1,9,88,0。(1)我们先假设下标为0的数据是排好的,即4是排好序的,那么接下来就要3,5,7,6,2,1,88,0.中每次取出一位放到数组的正确
2016-08-11 14:50:45
8757
原创 深入理解----ThreadLocal的工作原理
ThreadLocal 是什么? ThreadLocal是一个线程内部数据的存储类,通过它可以在指定的线程中存储数据,数据存储之后,只有在指定线程中可以获得到存储的数据,对于其他线程来说则无法获取到数据。下面通过一个例子来了解ThreadLocal对象:public class ThreadLocalTest { private static ThreadLocal t =
2016-08-10 13:17:10
558
原创 静态链表 -静态链表的插入与删除
静态链表 1. 静态链表:相当于用数组来实现线性表的链式存储结构,但实际上它在内存中还是连续的存储空间 静态链表的每一个节点都包含两部分,分别是数据data和游标cur(游标是指该存储元素的下一个元素所在数组对应的标) 2.需要注意的是:第一个节点不存放数据data,并且游标cur指向第一个不存放数据的元素的下标。
2016-08-08 10:56:56
5430
原创 java—原子性
原子性 java中的原子性:原子意为不可再发分的,最小的。原子性 可以应用于除了long和double之外的所有基本类型之上的“简单操作” 原子操作:在操作完成之前不会被线程调度器中断。 比如 a =1 ;return a ;这些在java里面都是原子操作, 但
2016-08-06 12:57:36
983
原创 数据结构与算法- 栈与队列的实现
栈与队列 栈:又叫做后进先出(LIFO)表,对栈的基本操作只能是进栈(push)和出栈(pop)。而且这些操作只能在一个栈的栈顶进行。 栈的实现:栈既可以用链表实现也可以用顺序表实现,但栈一般用顺序表(数组)实现。因为所有的操作都是在栈顶,那么在插入和删除的情况下,这两个表的时间复杂度都是一样的。在
2016-08-05 10:37:53
1145
原创 android 之 FragmentLayout的多布局实现
1.首先创建一个activity_mainxml文件Java code?12345678910111213141516171819202122232425
2016-07-04 21:43:06
1754
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人