java学习
大雄没有叮当猫
好好学习,天天向上
展开
-
数据结构之线性表java实现
package com.cb.java.algorithms.datastructure.yanweimindatastructure.list;/** * 顺序表的特点 在线性表中逻辑上相邻的数据元素,在物理存储位置上也是相邻的。<br> * 存储密度高,但要预先分配,可能会造成空间的浪费。 <br> * 便于随机存取 不便于插入和删除操作,会引起大量的数据元素的移动 *...原创 2018-06-11 16:22:03 · 199 阅读 · 0 评论 -
使用Lambda表达式重构模板方法
1.模板方法如果你需要采用某个算法的框架, 同时又希望有一定的灵活度, 能对它的某些部分进行改进,那么采用模板方法设计模式是比较通用的方案。好吧,这样讲听起来有些抽象。换句话说,模板方法模式在你“希望使用这个算法,但是需要对其中的某些行进行改进,才能达到希望的效果”时是非常有用的。 让我们从一个例子着手, 看看这个模式是如何工作的。 假设你需要编写一个简单的在线银行应用。 通常, 用户需要输入一个...原创 2018-06-30 11:59:43 · 1232 阅读 · 0 评论 -
使用lambda表达式重构策略模式
1.策略模式策略模式代表了解决一类算法的通用解决方案,你可以在运行时选择使用哪种方案。你可以将这一模式应用到更广泛的领域,比如使用不同的标准来验证输入的有效性,使用不同的方式来分析或者格式化输入。策略模式包含三部分内容,如图所示。 一个代表某个算法的接口(它是策略模式的接口) 。 一个或多个该接口的具体实现,它们代表了算法的多种实现(比如,实体类 ConcreteStrategyA 或者 Con...原创 2018-06-30 11:28:17 · 1161 阅读 · 0 评论 -
不修改数组找出重复的数字
描述:在一个长度为n+1的数组里的所有数字都在1~n的范围内,所以数组中至少有一个是重复的。请找出数组中任意一个重复的数字,但不能修改输入的数组。例如,如果输入长度为8的数组{2,3,5,4,3,2,6,7},那么对应的输出是重复的数字2或者3。这道题跟 面试题:数组中重复的数字 基本一样,但是限制了不能修改输入数组。思路1:创建一个n+1的辅助数组,然后逐一把原数组的每个数字复制到辅助数组。如果...原创 2018-06-29 21:44:54 · 213 阅读 · 0 评论 -
数组中重复的数字
题目:找出数组中重复的数字描述:在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应输出的重复数字为2或3。解法:0~n-1正常的排序应该是A[i]=i;因此可以通过交换的方式,将它们都各自放回属于自己的位置;从头到尾...原创 2018-06-29 20:41:11 · 127 阅读 · 0 评论 -
二叉查找树之java实现
package com.cb.java.algorithms.datastructure.yanweimindatastructure.tree;/** * 二叉查找树 * * @author 36184 * */public class BinarySearchTree<T extends Comparable<T>> { private TreeNode<T&g...原创 2018-06-14 11:28:03 · 121 阅读 · 0 评论 -
快速排序之java实现
package com.cb.java.algorithms.datastructure.yanweimindatastructure.sort;public class QuickSort<T extends Comparable<T>> { /** * 元素交换 * * @param a * @param b */ public void swap(T[] ...原创 2018-06-13 15:38:34 · 113 阅读 · 0 评论 -
希尔排序之java实现
package com.cb.java.algorithms.datastructure.yanweimindatastructure.sort;/** * 希尔排序 * * @author 36184 * */public class ShellSort<T extends Comparable<T>> { /** * 希尔排序 * @param arr */ p...原创 2018-06-13 13:45:40 · 110 阅读 · 0 评论 -
插入排序之java实现
package com.cb.java.algorithms.datastructure.yanweimindatastructure.sort;/** * 插入排序 * * @author 36184 * */public class InsertSort<T extends Comparable<T>> { /** * 插入排序 * * @param arr ...原创 2018-06-13 11:39:05 · 97 阅读 · 0 评论 -
选择排序之java实现
package com.cb.java.algorithms.datastructure.yanweimindatastructure.sort;/** * 选择排序 * * @author 36184 * */public class SelectionSort<T extends Comparable<T>> { /** * 元素交换 * * @param a...原创 2018-06-13 11:07:25 · 108 阅读 · 0 评论 -
冒泡排序之java实现
package com.cb.java.algorithms.datastructure.yanweimindatastructure.sort;public class BubbleSort<T extends Comparable<T>> { /** * 元素交换 * @param a * @param b */ public void swap(T[]arr...原创 2018-06-13 10:49:41 · 95 阅读 · 0 评论 -
数据结构之链表的java实现
package com.cb.java.algorithms.datastructure.yanweimindatastructure.linklist;/** * 单链表 * * @author 36184 * */public class LinkList { private LinkNode first; // 头指针,指向第一个节点。头节点没有数据项 public LinkList() ...原创 2018-06-12 14:34:23 · 100 阅读 · 0 评论 -
数据结构之优先级队列的java实现
package com.cb.java.algorithms.datastructure.yanweimindatastructure.list;public class GenericPriorityQ<T extends Comparable<T>> { private int maxSize; // 优先级队列容量 private int length; // 优先级...原创 2018-06-11 16:25:29 · 196 阅读 · 0 评论 -
数据结构之队列的java实现
package com.cb.java.algorithms.datastructure.yanweimindatastructure.list;/** * 循环队列 * @author 36184 * * @param <T> */public class GenericQueue<T> { private int maxSize; //队列容量 private T[]q...原创 2018-06-11 16:24:23 · 112 阅读 · 0 评论 -
数据结构之栈的java实现
package com.cb.java.algorithms.datastructure.yanweimindatastructure.list;public class GenericStack<T> { private int maxSize; // 栈的容量 private T[] stack; // 栈 private int top; // 栈顶元素 public Gener...原创 2018-06-11 16:23:40 · 128 阅读 · 0 评论 -
Java中的五种单例模式
解法一:只适合单线程环境(不好)package test;/** * @author xiaoping * */public class Singleton { private static Singleton instance=null; private Singleton(){ } public static Singleton getInstance(...转载 2018-06-28 21:45:51 · 94 阅读 · 0 评论