设计模式:Iterator模式

正常通过for循环遍历一个数组的时候,循环变量那个index,如果将它抽象化形成一种模式就是Iterator模式,也就是迭代器模式

比如要创建一个书架,上架几本新书,Java,Python,Perl和Shell,结束之后还要遍历这个书架上的书籍

那么要实现存书和遍历两个功能,肯定首先有书和书架两个类,上架书只需要书架不停append各种书的实例即可,而遍历似乎直接for循环就可以直接输出

这里添加[……]

Read more

MergeSort

大脑不够用了,补一个好玩的视频

http://v.youku.com/v_show/id_XMzMyODk5Njg4.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2

基本思路首先是分,将数组平分两边,然后每边进行排序,排序后再将两边归并成一整个有序的数组;这阶段通过递归完成,所以归并=递归+合并

一个数组排序,分解为两个已经排序好的数组,不停地递归

来[……]

Read more

JUnit单元测试

JUnit单元测试,既然叫单元,那就是针对最小功能单元来说,也就是针对单个方法的测试,像Python里的unittest,比如OpenStack对应的Tempest都是由一个一个单元测试构成的,Java的JUnit也基本类似

常规也是通过Assert断言来书写测试代码来测试结果的正确性

在IDEA里需要安装JUnit插件,搜junit即可;当然如果配置了Maven,直接就有

简单写一个例子进行下[……]

Read more

设计模式笔记:策略模式

现在开发了一个模拟鸭子的游戏,里面有各种鸭子出现,它们会一边游泳,一边嘎嘎叫,但是每种鸭子外观是不同的

继承方式

这里定义一个超类Duck,共同的行为swim和quack可以放在超类方法里,而不同的鸭子的颜色外表不同,可以定义个抽象方法display,子类进行覆盖

Duck.java

package Pattern.Strategy;

/**
 * @author lihui
 * @date[......]

Read more

阿里巴巴Java规约插件试水

阿里去年出了一个有关IDE的插件,应该对我这种层次的比较有用,养成一个好习惯,试试水

云栖社区链接:https://yq.aliyun.com/articles/224817?spm=a2c4e.11153959.blogcont224345.14.12a81178NBwput

按这个链接IDEA上安装应该没问题,如果网速不好,下载的链接帖子里也有

安装好了之后,Idea的Too[……]

Read more

Java简易二叉树排序

通过一个简单的二叉树例子,捋一捋思考的思路

比如需要对下列数组进行排序

int[] arr = {17, 12, 19, 10, 15, 18, 25, 8, 11, 13, 16, 22};

这里可以根据数组里的元素创建一个二叉树,要求就是父节点的值大于左子树节点的值,不大于右子树节点的值;当然父节点的值不小于左子树节点的值,小于右子树节点的值也行,最后再按中序遍历进行输出,也就是左中右,那么[……]

Read more

InsertionSort

插入排序,感觉挺有意思,可以理解成扑克牌,先取了张12,新取了张15,比12大,放右边;新取了张9,比15小,左移,和15换个位置,比12也小,继续左移

源码

package Love;

/**
* Hello world!
*/

public class App {

public static void insertionSort(int[] arr) {
int len =[......]

Read more