自定义ViewGroup实现多个单页面上下滑动效果

阅读过自定义ViewGroup实现仿淘宝的商品详情页的童鞋,应该都了解了ViewGroup中onMeasure、onLayout、onTouchEvent等相关方法的使用。在介绍仿淘宝商品详情页时,我们提到过现在网上很多实现方法是使用ScrollView嵌套两个ScrollView。而我也提到过这...

2016-12-30 16:33:59

阅读数 1375

评论数 9

自定义ViewGroup实现仿淘宝的商品详情页

最近公司在新版本上有一个需要, 要在首页添加一个滑动效果, 具体就是仿照X宝的商品详情页, 拉到页面底部时有一个粘滞效果,  如下图 X东的商品详情页,如果用户继续向上拉的话就进入商品图文描述界面: 刚开始想拿来主义,直接从网上找个现成的demo来用, 但是网上无一例外的答案都特别统一: 几...

2015-07-23 14:28:45

阅读数 29855

评论数 74

数据结构--红黑树

为什么要平衡 在上一节中,我们了解了 二叉搜索树 具有较稳定和较高的插入搜索效率。但是在某些极端情况下, 它的效率也会退化到 链表 的地步。 比如以上一堆数据,按照插入顺序的不同,所构建二叉搜索树的结构也会不一样,如下图所示: 很明显图a的效率肯定比图b效率高, 我们可以总结为: 在具...

2018-12-28 22:36:27

阅读数 448

评论数 2

数据结构--二叉搜索树

上一节我们讲了二叉树的定义,以及二叉树的遍历,这是面试中经常会问到的问题。但是坦白讲,在我们日常开发工作中普通的二叉树与二叉树遍历被用到的机会其实并不是很高。为什么这么说呢? 解答这道问题之前我们先来看一道面试题: 用一种数据结构将如下一组数据保存在内存中, 并提供元素查找操作 64, 50, ...

2018-12-22 22:27:23

阅读数 230

评论数 4

数据结构--二叉树

1

2018-12-19 22:08:05

阅读数 642

评论数 2

数据结构--树(Tree)

引入 树(Tree)是一种非线性结构。其内部数据并不是以线性的方式存储在内存中,而是以一种层级的关系保存的内存当中。 这种层级是什么意思呢? 举个例子,现实生活中其实有很多关系都是一层级的方式存在的。比较经典的有以下几种 公司中的组织架构关系: 家族族谱 比赛的对阵表 植物的根茎 以上几种...

2018-12-14 14:47:45

阅读数 574

评论数 0

数据结构--树(Tree)的学习线路

不管是在面试时,还是日常开发过程中。树都是一种曝光率极高的一种数据结构。因此掌握树这项技能包对于开发工程师来说是必不可少的。 但是树的种类很多,作为一个基本及格的工程师应该掌握哪些树,又该掌握到什么程度呢? 我个人认为,对于树这种数据结构,只要掌握(最好是能信手拈来)以下几项就基本能够达到大部分的...

2018-12-14 14:45:21

阅读数 134

评论数 0

数据结构--队列

队列 队列是一种同栈Stack非常类似的结构。唯一的不同点是:最先被压入栈的数据,将会在最后被弹出栈;而队列与之相反,最先进入队列的数据会被最先从队列中取出。 这个非常好理解,比如我们在超市买东西的时候,需要排队结账。最先到达收银台的人会先结账。队列就是符合这种规律的一种数据结构:也就是我们常说的...

2018-12-02 13:50:33

阅读数 259

评论数 0

数据结构--栈

理解栈 在理解"栈(Stack)"的时候,经常会用一个非常贴切的例子来理解它:就是一摞叠在一起的盘子。我们在放盘子的时候都是从下往上一个一个的放,反之在取盘子的时候都是从上往下一个一个的取出来。 也就是说最先放进去的盘子在最后时刻才能被取出来。这...

2018-11-28 09:37:16

阅读数 106

评论数 0

单链表反转

给定一个链表的头结点(Head), 根据这个Head将链表进行反转 比如如下几种情况: 输入如下链表的头结点 : 1->2->3->4->NULL 则输出结果为 :: 4-&a...

2018-11-20 16:16:14

阅读数 72

评论数 0

数据结构--链表

简介 同数组一样,链表也是一种线性结构。但是同数组不一样的是链表并不需要一组连续的内存空间来存储数据。取而代之的是,它通过“指针”将一组零散的内存串联起来,用一张图来体现链表和数组的区别如下: 这样做的好处就是: 可以动态的为链表申请所需要的内存 举个例子,假设我们要申请一个100MB大小的数...

2018-11-18 13:49:42

阅读数 330

评论数 0

快速判断某一个数组是否是另一个数组的子集

给定两个无序数组:数组arr1[0…m-1] 和 数组arr2[0…n-1] ,判断数组arr2是否是arr1的子集。 比如 arr1[] = {11, 1, 13, 21, 3, 7} arr2[] = {11, 3, 7, 1} 输出true arr1[] = {1, 2, 3, 4, ...

2018-11-13 21:40:15

阅读数 2190

评论数 0

快速查找数组中“和”为X的两个数

快速判断在一个数组中,是否存在两个数字,让这两个数字之和等于一个给定的值 X。 以数组 arr[] = {11, 15, 6, 8, 9, 10} 为例: 当x = 16时, 存在两个数字的和为16: (6, 10) 输出: true 当x = 35时, 存在两个数字的和为35: (26, 9...

2018-11-11 21:29:10

阅读数 926

评论数 0

数据结构--数组

定义 数组(Array)是一种线性表结构,它用一组连续的内存空间来存储一组具有相同类型的数据。 在这个定义中有几个关键词: 线性表 所谓线性表就是数据会排成像一条线一样的结构。也就是说线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。 线性表...

2018-11-06 14:05:51

阅读数 330

评论数 0

快速排序

简介: 快速排序是一种利用分治思想的排序方法。它的最坏情况时间复杂度为O(n2)的排序算法。虽然最坏情况很差,但是快排通常是实际排序应用中最好的选择,因为它的平均性能非常好;它的期望时间复杂度是O(N * LogN),而且O(N * LogN)中隐含的常数因子非常小。另外它能够进行原址排序。 基本...

2018-10-31 10:23:05

阅读数 753

评论数 0

插入排序

算法思想 插入排序的工作方式非常像人们排序一手扑克牌一样。开始时,我们的左手为空并且桌子上的牌面朝下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较,如下图所示: 那插曲排序是如何借助上面提到的思想来实现排序的呢?...

2018-10-24 17:05:13

阅读数 1946

评论数 1

冒泡排序的实现与优化

Java实现 通过使用Java 8的Lambda表达式,实现冒泡排序代码如下: void bubbleSort(Integer[] arr) { int n = arr.length; IntStream.range(0, n - 1) .flatMap(i -&a...

2018-10-03 22:46:09

阅读数 91

评论数 0

冒泡排序(Bubble Sort)

介绍 冒泡排序是一种简单的排序方法。它的核心思想是对数组进行=N - 1=次遍历,每一次遍历的过程中,会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,...

2018-10-03 22:03:41

阅读数 84

评论数 0

是否应该对private的方法写UnitTest code

最近在写UnitTest代码的时候遇到了点小问题,在解决过程当中有了点小心得,做一下记录。 完整代码在此处下载: https://download.csdn.net/download/zxm317122667/10652780 问题主要对于 private 方法的单元测试。 比如如下代码...

2018-09-07 19:36:46

阅读数 364

评论数 0

ARCore快速入门--使用GLSurfaceView和ARCore绘制3D模型

前言

2018-07-16 19:50:37

阅读数 1258

评论数 7

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