自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 第七章 高级排序

一、希尔排序      希尔排序是因为插入排序有个严重的问题。假设一个很小的数据项在很靠近右端的位置上,这里本来应该是比较大的数据项所在的位置。然而要把它移到正确的位置,所有中间的数据项都要右移一位。效率大打折扣。因此希尔排序通过加大插入排序中元素之间的间隔,并在这些有间隔的元素中进行插入排序,从而使数据项能大跨度地移动。当这些数据项排过一趟序后,希尔排序算法减小数据项的间隔再进行排序,以h表示

2015-11-21 19:37:46 476

原创 第八章 二叉树

一、综述           为什么要用树,这种新的数据结构呢?因为树结合了有序数组和链表的优势——在树中查找数据项的速度和有序数组一样快,并且在插入和删除数据项和链表一样快。      树由边连接的节点组成,如下图:      节点一般代表着现实生活中的实体,在Java中也称对象。节点间的边表示关联节点间的路径,在Java中用引用来表示边。在树的顶层总是只有一个节点,称为根。它通

2015-11-21 19:35:28 229

原创 Model类和数据库的关联

一、DataSupport 这个类是类和数据库表的桥梁。使用起来简直是无缝的映射。 你可以这么写:  * public class Person extends DataSupport {  *     private int id;  *     private String name;  *     private int age;  * } 在此之前你可能是这么写:

2015-11-10 19:29:25 379

原创 LitePal的CRUD操作

前面说到LitePalBase是LitePal所有组件的基类,因此这边很重要的DataHandler就是继承与它,不过依然是抽象类。所有CRUD操作的组件都继承于DataHandler。快来让我们看一下它做了哪些事。 1、mDatabase -> SQLiteDatabase 数据库 2、query(...) -> List 查询一个给定的model的表,返回数据。让我们看下入参

2015-11-10 19:28:50 877

原创 在LitePal中解析XML

在使用LitePal的时候有些关键步骤不可获取,其中一个是创建litepal.xml文件,放到assets目录下,里面有一些数据库名、版本号、映射列表等。那么LitePal需要怎么获取到我们配置的数据呢?这里就要去解析xml文件了。LitePal默认使用的是SAX解析。还有Pull和DOM解析未来将会被引入。 一、LitePalParser 下面先列出几个需要解析的node和attri

2015-11-10 19:28:13 985

原创 一些异常封装

一、DatabaseGenerateException 可能会在生成表或者更新表的时候抛出。列出常见异常: can not find a class namedAn exception that indicates there was an error with SQL parsing or execution.SQL syntax error happens while executin

2015-11-10 19:27:44 3433

原创 LitePal中需要用到的Model

一、Column 用来描述列。 public @interface Column {     String name() default "";     boolean nullable() default true ;     boolean unique() default false ; } 默认列名将使用映射的Model类中的属性字段名。

2015-11-10 19:27:08 558

原创 Generator数据库的管理者

一、 Generator继承于LitePalBase,用来动态关联数据库。创建或者更新litepal.xml里面需要映射的类。基类主要的任务是从映射类里面读取属性,并且格式化数据类型。具体的分析工作将在子类里面完成。 private Collection mTableModels; private Collection mAllRelationModels; 这边有两个属性

2015-11-10 19:26:34 361

原创 LitePal源码学习开篇

让我们一起来了解下在Android数据库开发中应用广泛的一个开源库——LitePal。它采用了ORM对象关系映射的模式,什么叫对象关系映射?简单地理解就是,我在代码中写了个Model,就能被映射到数据库的表中。首先我们来学习下这个Tony Green大神写的基类——LitePalBase。它主要用在LitePal的组件之间处理它们的一些关联。然后一起来看一下一些重要的属性和方法。 1、类

2015-11-10 19:25:10 575

原创 一起来了解下java的Buffer!

一、Buffer 首先可以看到Buffer的一个层级。Object-Buffer-{ByteBuffer, CharBuffer, DoubleBuffer, FloatBuffer, IntBuffer, LongBuffer, ShortBuffer}。 源码这里给出了Buffer的定义——Buffer是一个基本数据类型的元素组成的列表。下面列出它的属性: Capacity:B

2015-11-09 10:18:27 513

翻译 Android6.0权限管理

一、运行时权限 新系统区别于旧系统对待权限上面更加地考虑用户。旧系统的权限仅在安装时候询问一次,而在6.0中,app不得不在运行时一个一个询问用户授予权限。然后有两个很坑爹的事情,需要开发者在开发app的逻辑上面有所转变。一、权限询问对话框需要开发者自己调用;二、用户可以拒绝权限,并且随时可以在设置中取消已经授权的权限(这样很容易导致崩溃)。 如果低于6.0的系统,用户取消app需要的

2015-11-08 21:50:47 412

原创 第六章 递归

递归是一种方法调用自己的编程技术。递归方法会不断调用自身,直到满足基值(终止)条件,以防止无限递归下去,此时递归方法将会返回。 调用自身当它调用自身的时候,是为了解决更小的问题存在某个足够简单的问题的层次,在这一层算法不需要调用自己就可以直接解答,且返回结果 一、分治算法      递归的二分查找法是分治算法的一个例子。把一个大问题分成两个相对更小的问题,并且分别解决每一个小问题

2015-11-08 21:47:47 367

原创 第五章 链表

链表是一种新的数据存储结构,有别于低效的、大小不可变的数组,它被广泛地应用在许多通用的数据库中。除非需要频繁的通过下标随机访问各个数据,否则在很多使用数组的地方都可以用链表代替。 一、链结点Link      每个数据项都被包含在“链结点”中。一个链结点是某个类的对象,这个类可以叫做Link。每个Link对象中都包含一个对下一个链结点引用的字段(next)。链表本身的对象中有一个字段指

2015-11-08 21:45:46 312

原创 第四章 栈和队列

一、概念 栈:栈只允许访问一个数据项,即最后插入的数据项。符合后进先出的规则。 队列:队列是一种类似于栈的数据结构,但是队列的规则是先进先出。 二、栈的Java写法 class StackX {      private int maxSize;              //最大容量      private long[] stackArray;     //数组

2015-11-08 21:45:09 307

原创 第三章 简单排序

一、概要      三种简单的排序:冒泡排序、选择排序、插入排序。 二、冒泡排序      假设由n个队员,并且根据所站的位置从左到右分别给每一个队员编号,从0到n-1。      冒泡排序的过程如下:      从队列的最左边开始,比较第0号和第1号,如果左边的队员比右边高,则交换两个队员。否则不做任何事。然后右移一个位置,比较第1号和第2号,重复上诉步骤,直到最后一个队员。这

2015-11-08 21:44:21 446

原创 第二章 数组

一、创建数组 Java有两种数据类型:基本类型和对象类型。而数组被当作对象来处理。因此创建数组时需要使用new操作符。 int[] intArray; intArray = new int[100]; 或者 int[] intArray = new int[100]; 由于数组是一个对象,所以它的名字intArray是数组的一个引用,并非数组本身。数组存储在内存中的其它地址中,而int

2015-11-08 21:43:34 260

原创 第一章 综述

数据结构是对计算机内存中(或者磁盘中)的数据的一种安排。 常见的有:数组、队列、链表、二叉树、栈、哈希表等等。 算法是对这些结构中的数据进行各种处理。 学习数据结构和算法的用处: 现实世界数据存储程序员的工具建模 何谓面向对象编程? 先说明一下过程性语言(C语言)的不足,这类语言有两类问题: 程序与现实世界缺乏对应关系;程序内部的结构出现问题。 而面向对象编

2015-11-08 21:42:51 355

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除