- 博客(8)
- 资源 (10)
- 问答 (3)
- 收藏
- 关注
转载 树及树的遍历(二)-----二叉树前序、中序、后序遍历非递归写法的透彻解析
递归写法,只要理解思想,几行代码。可是非递归写法却很不容易。这里特地总结下,透彻解析它们的非递归写法。其中,中序遍历的非递归写法最简单,后序遍历最难。我们的讨论基础是这样的:?1234567//Binary Tree Nodetypedef struct node
2016-09-19 17:18:36 2481
转载 树及树的遍历(一)
树(Tree)树,顾名思义,长得像一棵树,不过通常我们画成一棵倒过来的树,根在上,叶在下。不说那么多了,图一看就懂:当然了,引入了树之后,就不得不引入树的一些概念,这些概念我照样尽量用图,谁会记那么多文字?树这种结构还可以表示成下面这种方式,可见树用来描述包含关系是很不错的,但这种包含关系不得出现交叉重叠区域,否则就不能用树描述了,看图:面试的时候我们经常被考到的是一种
2016-09-19 14:11:52 1145
原创 Java设计模式之代理模式
什么是代理模式?代理模式,一般是为了对真正的对象进行访问限制,延时实例化等,举一个例子:生活中,书籍厂家生产书并且出售书,但是,如果你想买书的话,一定要到书籍厂家买吗?不是的,我们可以通过大大小小书店购买。在这里,书籍厂家就是RealObject,它有一个方法sell();书店就是代理对象ProxyObject,它也有一个方法sell(),这个方法通过调用realObject的se
2016-09-14 11:08:05 491
转载 学习AIDL,这一篇文章就够了
1、概述AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言。是的,首先我们知道的第一点就是:AIDL是一种语言。既然是一种语言,那么相应的就很自然的衍生出了一些问题:为什么要设计出这么一门语言?它有哪些语法?我们应该如何使用它?再深入一点,我们可以思考,我们是如何通过它来达到我们的目的的?更深入一点
2016-09-13 20:07:13 3310 1
转载 为什么重写equals一定要重写hashCode
一、为什么要有Hash算法Java中的集合有两类,一类是List,一类是Set。List内的元素是有序的,元素可以重复。Set元素无序,但元素不可重复。要想保证元素不重复,两个元素是否重复应该依据什么来判断呢?用Object.equals方法。但若每增加一个元素就检查一次,那么当元素很多时,后添加到集合中的元素比较的次数就非常多了。也就是说若集合中已有1000个元素,那么第1001个元素加
2016-09-13 13:53:08 695
转载 HashMap实现原理分析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难
2016-09-13 13:39:00 410
原创 layer-list标签会导致绘制多层从而引发过度绘制
在我们使用layer-list标签的时候,一定要小心,因为它会多绘制一层,可能会引发过度绘制。比如,你可以做一个测试:打开手机的调试过度绘制选项,一个layer-list下定义的几个item,然后查看一个View分别设置backGround为color和设置为这个layer-list所显示的过度绘制,你就会发现layer-list绘制的层数比设置backgroud为color多。
2016-09-09 15:49:59 1703
原创 ListView的Adapter有多个ViewHolder的时候导致的ViewHolder类型转换错误!
问题复现背景是这样的,我用的CursorAdapter,然后重写了getViewTypeCount方法 @Override public int getViewTypeCount() { return TYPE_COUNT; } 我又自己实现了一个getItemViewType方法 public int getItemViewType(Cursor
2016-09-08 10:58:34 3428 1
Android调起系统邮箱?
2016-12-06
哈希表用拉链法解决冲突的时候怎么根据K进行查找值?
2016-09-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人