java
qin34
这个作者很懒,什么都没留下…
展开
-
多路查找树:B-tree/b+tree
多路查找树:结点可以存储多个元素;一个结点的孩子数可以多余2个4种特殊形式:2-3树:每一个结点都具有2个孩子(称为 2结点)或者3个孩子(称为 3结点)(不能出现一个结点只有1个或超过3个孩子的)1、一个 2结点 包含一个数据元素B,左子树小于B,右子树大于B2、一个 3结点 包含一小B一大D 2个数据元素和3个孩子,左子树小于较小数据元素D的元素右子树大于较大元素B的数据元素,中间子树包含介于两数据元素B\D之间的元素3、所有的叶子都在同一层次上2-3-4树:对2-3树的扩展1、原创 2020-09-30 15:13:24 · 1479 阅读 · 0 评论 -
算法-分块索引和倒排索引
分块索引:块与块是有序的 ,块内无序的;最大值也要小于最小值倒排索引:对文章分词,分词结果都索引到这篇文章原创 2020-09-28 16:45:29 · 230 阅读 · 0 评论 -
算法-二叉排序树
二叉排序树:第一个元素为根root,大于root的作为右结点,小于的作为左结点;依次类似安排public class BST { public static void main(String[] args) { List<BitNode> nodeList= Stream.of(62,88,58,47,35,73,51,99,37,93).map(BitNode::new).collect(Collectors.toList()); BitNode ro原创 2020-09-28 16:39:33 · 141 阅读 · 0 评论 -
算法-有序表查找
public class SortSearch { int [] example={1,11,23,34,36,38,44,46,49,50,56,57,67,69,71,72,75,78,83,86,89,91,93,97,99,100}; public static void main(String[] args) { new SortSearch().fibonacci(100); } //斐波那契查找 public void fibonacc原创 2020-09-25 09:33:27 · 147 阅读 · 0 评论 -
数据结构-图-关键路径
用边表示活动的网,变得权值表示活动持续时间,活动之间制约关系没有矛盾的基础上用顶点表示事件;用有向边表示活动,权值表示活动的持续时间求出到达各个状态(顶点)的最早时间(按最大计)要从源点开始向汇点顺推:求出到达各个状态(顶点)的最晚时间(按最小计)过程是要从汇点开始向源点逆推边的最早时间 = 这条边的尾顶点的最早时间边的最晚时间 = 这条边的头顶点的最晚时间-边的权值边的最早时间==边的最晚时间 则是关键路径...原创 2020-09-23 17:07:12 · 316 阅读 · 0 评论 -
数据结构-图-求最短路径-迪杰斯特拉/弗洛伊德
public class ShortTree { private static final int infinity=65535; private String [] topPoint={"0","1","2","3","4","5","6","7","8"}; private int length=9; private int[][] sides={ {0, 1, 5, infinity, infinity, infinity, infinity,原创 2020-09-18 16:16:28 · 168 阅读 · 0 评论 -
最小生成树-普里姆算法\克鲁斯卡尔算法
/** * 最小生成树:找寻图中连接所有顶点的最短距离的路径 * 普里姆算法(prim)和克鲁斯卡尔算法(kruskal) * v0 v1 v2 v3 v4 v5 v6 v7 v8 * v0 0 10 # # # 11 # # # * v1 10 0 18 # # # 16 # 12 * v2 # #原创 2020-09-14 17:02:09 · 136 阅读 · 0 评论 -
数据结构:图
/** * 图:G(V,E) V顶点,E边 有向边<a,d> 无向边(a,d) * 无向完全图:任意2个顶点之间都存在边。共(n*(n-1) / 2)条边 * 有向完全图:任意2个顶点之间都存在方向互为相反的2条弧。 共 n*(n-1)条边 * 权:图中边带数字的 * 度:相邻边的数目。边数=每个顶点度的和*2 。 * 无向图的度:TD(V) * 有向图的度:入度ID(V)=出度OD(V) TD(V)=ID(V)+OD(V) * 连通分量:是一个图的子图;原创 2020-09-11 16:09:27 · 146 阅读 · 0 评论 -
数据结构-树(1)
/** * 计算机的存储结构有顺序存储和链式存储 * 结点的度:结点拥有的子树数 * 叶结点/终端结点:度为0的结点 * 分支结点/非终端结点:度不为0 * 内部结点:除根结点外的分支结点 * * 树的表示:双亲表示法、孩子表示法、孩子兄弟表示法 * 二叉树:每个结点最多2颗子树;左右有顺序;即使只有一颗子树,也要区分左右 * 特殊二叉树: * 斜树:左斜树、右斜树 结点的个数与二叉树的深度相同 * 满二叉树:所有结点都存在左子树和右子树,并且所有叶子都在同一层上原创 2020-09-09 16:48:01 · 103 阅读 · 0 评论 -
KMP
KMP模式匹配计算next值:下标从0开始,当j=x,取0-(j-1)的字符,判断前缀和后缀字符是否相等,相等的字符个数字符的前缀是值不包含最后一个字符在内的所有,前缀和后缀最大长度为k 的相同前缀后缀如:t=“aaaaa aab” 当j=4 t4=aaaa 前缀aaa 后缀aaa next=3public void getNext(String t,int next[]){ int i; i=1; next[0]=0; whil.原创 2020-09-07 15:53:48 · 109 阅读 · 0 评论 -
CompletableFuture学习
//supplyAsync 和 runAsync 区别在前个有返回值,后一个没有返回值 public static void supplyAsync() throws ExecutionException, InterruptedException { ExecutorService executorService = Executors.newCachedThreadPool();// executorService.submit(() -> {//原创 2020-09-04 11:00:11 · 101 阅读 · 0 评论 -
Elasticsearch
反向索引又叫倒排索引,是根据文章内容中的关键字建立索引。搜索引擎原理就是建立反向索引。Elasticsearch 在 Lucene 的基础上进行封装,实现了分布式搜索引擎。Elasticsearch 中的索引、类型和文档的概念比较重要,类似于 MySQL 中的数据库、表和行。Elasticsearch 也是 Master-slave 架构,也实现了数据的分片和备份。Elasticsea...转载 2020-01-14 16:13:20 · 117 阅读 · 1 评论 -
springboot异步记录日志
<appender name="CONSOLE-LOG" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>[%d{yyyy-MM-dd' 'HH:mm:ss.sss}] ...原创 2019-11-27 16:30:26 · 2023 阅读 · 0 评论 -
Java代码读写分离
转载原文代码环境是springboot+mybatis+druib连接池。想要读写分离就需要配置多个数据源,在进行写操作是选择写的数据源,读操作时选择读的数据源。其中有两个关键点:如何切换数据源如何根据不同的方法选择正确的数据源1)、如何切换数据源通常用springboot时都是使用它的默认配置,只需要在配置文件中定义好连接属性就行了,但是现在我们需要自己来配置了,spring是支持...转载 2019-06-26 14:07:07 · 1689 阅读 · 0 评论 -
枚举使用
@RunWith(JUnit4.class)public class EnumTest { @Test public void te(){ OrderStutasEnum ok=OrderStutasEnum.OK; System.out.println(ok.getId()+"="+ok.getVal()+"="+ok.toString())...原创 2019-04-19 16:17:42 · 91 阅读 · 0 评论 -
Java 8 中的 Streams API 详解
本文转载于陈争云,占宇剑和司磊的《Java8中的Streams API详解》一文。Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集...转载 2019-04-02 15:16:10 · 127 阅读 · 0 评论 -
格式化string输出
格式化string输出原创 2015-03-09 14:53:06 · 419 阅读 · 0 评论 -
计算两个long型时间差
public static String getTimeFromLong(long diff) { final String HOURS = "h"; final String MINUTES = "min"; //final String SECONDS = "sec"; final long MS_IN_A_DAY = 1000 *原创 2016-01-22 13:07:49 · 7217 阅读 · 0 评论 -
MD5加密之中文
MD5加密中文是要指定编码格式:public final static String MD5(String s) { char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; try { //指定为"UTF-8",不加参数原创 2016-01-08 15:22:28 · 749 阅读 · 0 评论 -
移位运算-2高效的乘除运算
移位运算,右移一位相当于除2,右移n位相当于除以2的n次方。x >>> n c语言中移位运算只能用于整数,整数A左移1位得到的结果为A*2,右移1位为A/2取整public static void main(String[] args) { System.out.println(21 >>> 1);//21/2 System.out.println(21 >>>原创 2017-05-06 08:26:21 · 878 阅读 · 0 评论 -
水印图片
平铺水印图片,直接时代码原创 2017-07-02 18:29:28 · 277 阅读 · 0 评论 -
格式化日期
格式化日期,不使用SimpleDateFormat原创 2017-06-26 20:04:19 · 198 阅读 · 0 评论 -
代理Proxy.newproxyinstance
代理 proxy newproxyinstance原创 2017-07-06 20:32:08 · 720 阅读 · 0 评论 -
泛型类、泛型方法、通配符泛型、通配符的超类型限定
泛型类、泛型方法、通配符泛型、通配符的超类型限定原创 2017-07-09 18:00:15 · 2038 阅读 · 0 评论 -
LinkedHashMap 实现“最近最少使用”的原则,PriorityQueue优先级
LinkedHashMap 实现“最近最少使用”的原则 accessOrder;优先级队列PriorityQueue原创 2017-07-14 20:05:14 · 1871 阅读 · 0 评论 -
集合与数组的转换
集合与数组的转换原创 2017-07-24 19:48:10 · 233 阅读 · 0 评论 -
搜索目录下所有文件内容是否包含指定的关键词
搜索目录下所有文件内容是否包含指定的关键词import java.util.*;原创 2017-08-02 19:59:30 · 3811 阅读 · 0 评论 -
非对称加密DH/RSA/ElGamal
非对称加密DH/RSA/ElGamal原创 2017-08-12 11:04:37 · 484 阅读 · 0 评论 -
Java类型转换
《在将int或long类型窄化转换为整数类型T的时候,转换过程仅仅是简单地丢弃除最低位N个字节以外的内容,N是类型T的数据类型长度,这将可能导致转换结果与输入值有不同的正负号。这点很容易理解,因为原来符号位处于数值的最高位,高位被丢弃之后,转换结果的符号就取决于低N个字节的首位了。 在将一个浮点值窄化转换为整数类型T(T限于int或long类型之一)的时候,将遵循以下转换规则: 如果浮点值是Na翻译 2017-11-29 09:10:20 · 263 阅读 · 0 评论 -
JAVA类加载器
类的生命周期 加载 连接(验证,准备,解析) 初始化 使用 卸载启动类加载器(Bootstrap ClassLoader): 前面已经介绍过,这个类将器负责将存放在<JAVA_HOME>\lib目录中的,或者被-Xbootclasspath参数所指定的路径中的,并且是虚拟机识别的(仅按照文件名识别,如rt.jar,名字不符合的类库即使放在lib目录中也不会被加载)类库加载到虚拟机内存中。扩展类转载 2017-12-02 10:01:57 · 155 阅读 · 0 评论 -
Java随机100以内的数
Random r=new Random();r.nextInt(100)原创 2015-01-21 16:24:02 · 1128 阅读 · 0 评论