- 博客(8)
- 收藏
- 关注
原创 看完这篇还不会KMP算法,你打我
看完这篇还不会KMP算法你打我文章目录看完这篇还不会KMP算法你打我1.引入2.常规思路3.K.M.P算法==next数组的构成理解==指针j为什么可以回溯到k这个位置指针i为什么可以不移动?为什么需要next数组?那么我们怎么从next数组里面取出对应情况的k呢?为什么next[0] = -1 ; next[1] = 0 ;这两个数值是固定的呢?==next数组的获得==K.M.P算法实现1.引入 这里有一个需求是这样的,我有一个字符串 s1 = “AABAA”,请找到子字符串"AB"在源字符串
2020-05-29 13:08:29 2717 11
原创 Stream流的学习与使用
Stream流概述 Stream是一种用来操作数据的流程方法,通常使用流来操作集合数据,支持并发操作。 流是一个强化的迭代器,具有更强大的操作功能,一切全凭想象力。Stream实例的获取/创建通过静态方法empty()创建空流var s = Stream.empty();通过集合的stream()/parallelStream()方法创建var list = new Ar...
2020-05-04 16:14:37 249
原创 JDK动态代理看完不会你打我
WHAT 动态代理是代理模式的一种,代理模式指的是由代理人 帮助被代理对象完成本该由被代理对象去完成的事情。代理人通常具有更加强大的能力,比起被代理对象更加专业。举个生活中的例子来说明,你可以选择自己去找到房东,签约合同完成房屋租赁。但是生活大家通常都不是这么做的,而是寻求更加专业的中介来做,中介代理我们,寻找有出租意向的房东。在这例子中找房子这件事情本该由你自己完成的,就变成了由中介帮你完成,具体是怎么完成的不需要你操心,这种模式我们称之为代理模式。WHY 为什么会有代理模式的出现?
2021-08-22 13:00:02 119
原创 Comparator的使用教程
Comparator概念自1.8以后,Compartor成为一个函数式接口,该接口用于返回一个比较器,比较器主要用于排序用法1.配合各类容器(如流、集合、数组)进行排序方法代码示例方法名代码示例解释说明compare/是函数是接口的唯一抽象方法,可以使用Lambda重写后返回一个比较器。直接使用的话不好用,不推荐使用comparing(Functio...
2020-05-03 22:47:01 736
原创 BigDecimal类 学习与使用教程
BigDecimal 类学习要点:BigDecimal 类主要是通过精度(precision)及规模(scale)来确定数值,其中精度是没有缩放前的数值,规模是缩小方法的一个指数。官方公式为:(unscaledValue × 10-scale),如一个BigDecimal类型的数据的精度为100,scale为2那么这个数据就是——1.00。BigDecimal 要求程序员必须为除不尽的小数,...
2020-04-22 19:01:55 337
原创 JAVA中通过字节对字符串进行截取
java中通过字节对字符串进行截取,本文的背景是中英文混合在一起,gbk,utf-8等编码的中英文字节数不对应,导致难以截取。这里使用Unicode编码的方式进行转换,在Unicode中每个字符均使用两个字节来记录,其中数字及英文字母第一个字节必是0 ,且第一个,第二个为标记码,需要跳过。核心思想:现将字符串转为字节数组,然后遍历数组,只要遇到偶数角标字节数就加一,奇数角标则进一步判断前一个角...
2020-04-13 16:44:37 542
原创 用java语言实现将阿拉伯记数的数字转为中文记数的文字
将阿拉伯数字转为中文型数字主要思想是先把数字分为整数部分及小数部分,然后根据字符串的索引从最后一位机械地转为 X千X百(个十百千万)的形式。转换过程判断是否为零,如果为零接着判断,如果是零且正好又是重要的万元,亿元,万亿元级别的单位,则只添加单位不添加数字,否则直接跳过啥也不转。之后没转化一个数字前测试前一位是否为零,如果为零则在本单位前加零再添加数字及单位,以符合中文习惯,如1001转为一千...
2020-04-13 16:31:40 542 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人