设计框架
soybeen
学得越多会的越少
展开
-
一个简单的MVVM Demo
public class TestActivity extends FragmentActivity { Lifecycle lifecycle; TestViewModel testViewModel; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { ...原创 2019-01-06 16:41:07 · 1193 阅读 · 0 评论 -
Aop事件注入
package inject;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target(ElementType....原创 2019-04-09 20:11:03 · 408 阅读 · 0 评论 -
【框架】EventBus简单实现
1.SubScribe注解@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface Subscrible { ThreadMode threadMode() default ThreadMode.MAIN;}2.SubScribeMethod封装public cla...原创 2019-03-25 21:25:26 · 210 阅读 · 0 评论 -
【数据结构】dijkstra算法计算最短路径
package com.example.meitu.data.graph;import android.util.Log;import java.util.LinkedList;/** * @author zpb * Created by meitu on 2019/3/18. * 最短滤镜算法 */public class DijkstraDemoGraph { ...原创 2019-03-18 21:18:58 · 389 阅读 · 0 评论 -
【数据结构】动态规划--经典算法0-1背包问题
public class DynamicPlay { public static int pack(int[] item, int n, int totalWeight) { // 申请一个状态数组 boolean[] state = new boolean[totalWeight + 1]; // 哨兵作用 state[0...原创 2019-02-18 21:05:39 · 288 阅读 · 0 评论 -
【拓扑排序】两种拓扑排序算法
public class Graph { /** * 节点数量 */ public int v; public LinkedList<Integer> adj[]; private Graph(int v) { this.v = v; // 初始化顶点 adj = new Link...原创 2019-02-23 15:34:11 · 865 阅读 · 0 评论 -
【数据结构】动态规划,求矩阵的最短距离
public class DynamicPlan { public static int getMinDis(int[][] matrix, int n) { int[][] state = new int[n][n]; // 初始化,横向 int sum = 0; for (int i = 0; i < n; i++...原创 2019-02-23 14:18:55 · 756 阅读 · 0 评论 -
【数据结构】堆的应用
public class Heap { private int n = 0; private int count = 0; int[] a;// 从角标1开始存储 public Heap(int n) { this.n = n; this.count = 0; a = new int[n]; } ...原创 2019-02-11 13:54:00 · 176 阅读 · 0 评论 -
【数据结构】树的查找,插入删除
public class TreeSearchUtils { public static void boundarySearch(TreeNode<Integer> treeNode, int data) { TreeNode<Integer> p = treeNode; while (p != null) { ...原创 2019-01-30 23:01:44 · 322 阅读 · 0 评论 -
【设计思想】数据的轻量封装
1.今天在做项目的时候,发现一个Bundle数据,因为异步操作的关系,导致了线程不安全修改而崩溃,看了下源码,Bundle,里面的实现是ArrayMap不是线程安全的,如果要解决这个崩溃,要在调用的地方,加锁处理,但是使用的地方太多,很容易加锁错误于是自己就对Bundle,使用装饰模式做了一层简单的封装,public class SaveBundle{ /** * 读...原创 2019-02-16 15:11:36 · 167 阅读 · 0 评论 -
AnimViewWrapper -- 对view动画的简单包装
public class AnimViewWrapper<T extends View> { T mTarget; public static final int DIRECTION_TOP = 0x01; public static final int DIRECTION_BOTTOM = 0x02; public static final in...原创 2019-01-30 14:34:15 · 251 阅读 · 0 评论 -
【数据结构学习】链表--基于链表的LruCache实现
public class Node<K, T> { K key; public K getKey() { return key; } public void setKey(K key) { this.key = key; } T value; /** * 下一个节点 ...原创 2019-01-21 18:38:24 · 262 阅读 · 0 评论 -
【数据结构】排序--快速排序
public static void quiteSort(int[] a, int low, int high) { if (low > high) { return; } int privot = parttion(a, low, high); quiteSort(a, low, priv...原创 2019-01-25 16:20:02 · 137 阅读 · 0 评论 -
【数据结构】排序--归并排序
public class SortUtil { /** * 归并排序采用递归 * @param a * @param n */ public static void Sort(int[] a, int n) { printData(a); mergeSort(a, 0, n - 1); pr...原创 2019-01-24 21:26:03 · 83 阅读 · 0 评论 -
【数据结构】排序--3种简单排序
public class SortUtils { /** * 冒泡排序,稳定算法 最好时间复杂度o(1) o(n2) 平均o(n2) * @param a * @param n */ public static void bunbleSort(int[] a, int n) { if (n == 1) { ...原创 2019-01-24 13:48:26 · 228 阅读 · 0 评论 -
Mvp+clean框架代码
1.首先是UseCasepackage com.example.meitu.cleandemo.base;/** * google useCase框架 */public abstract class UseCase<T extends UseCase.Request, Q extends UseCase.Respose> { /*** * ...原创 2019-01-02 23:28:10 · 294 阅读 · 0 评论 -
仿Recycler Adapter一个数据和UI结合小框架
package com.commsource.uiwrapper;import android.view.View;public abstract class BaseUIDataWrapper<T> { public T data; public ViewHolder holder; protected OnUIGestureListener...原创 2019-01-17 17:19:32 · 113 阅读 · 0 评论 -
androidx PreferenceDialogFragmentCompat 和 DialogPreference的配合应用
最近在升级替换使用androidxDialogPreference 的时候,发现androidx 对DialogPreference进行了解耦,之前的数据持久化和Ui的绑定在DialogPreference中就能实现,而现在需要通过PreferenceDialogFragmentCompat和DialogPreference配合才能使用。说实话对preference的应用在做这个升级之前我...原创 2019-05-08 19:23:28 · 3998 阅读 · 0 评论