自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 【学习打卡】220904-C01学习密码学

Hash函数

2022-09-04 22:44:45 229 1

原创 使用Java函数式编程来生成基础数据(数组)

Java函数式编程来生成基础数组完整代码import lombok.Getter;import java.util.Random;import java.util.function.BiFunction;import java.util.stream.IntStream;@Getterpublic class ArrayGenerate { private BiFunction<Integer, Integer, Integer[]> classic_array_gen

2022-05-30 15:56:41 330

原创 用Java、Kotlin来学写算法

用Java来学写算法的文章列表为什么要写这个系列文章线性查找法为什么要写这个系列文章自己的懒与笨只有自己清楚,所以写这个文章系列主要是来督促自己学习的。另外,Java语言是自己最喜欢的编程语言,Java的函数式编程也非常优秀,所以想把一些算法用Stream方式来编写出来。本系列文章都是来自线上liuyubobobo老师的课程。跟着高手学习,希望自己也可以成为高手。线性查找法...

2022-05-29 17:19:19 142

原创 Java Stream来写算法13——求解斐波那契数列Fibonacci

总目录概述斐波那契数列(Fibonacci sequence),又称 黄金分割 数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“ 兔子数列 ”。数列的前两项分别是0与1,根据前两项内容,以后的数据值都为其前面两项数字之和计算出来的,比如第3项就是0+1=1;第四项1+1=2,第五项1+2=3……以此类推。Java实现思路当使用流来生成数列时,这个数列是根本不记得前面生成的数字是什么的,Stream流生成器只会内部保留生成数据的种子

2021-08-02 16:42:36 228

原创 Java Stream来写算法12——分解质因数Prime Factors(lambda改写)

总目录概述在上一篇文章中,是使用最普遍的for、while语句来实现质因数分解在当时的想法中,感觉如果求一个数的质因数,需要不断将该数与某个质因数相除,利用商再来求其它质因数,所以觉得,Stream流不适用但事后再想想,如果不用上面的思路,而考虑先找到一个数的质因数,这个质因数在因数表中有几个先全找到就可以,不需要使用商来求其他质因数而其他质因数与上面的质因数,可以考虑成是没有关系的数,这样考虑的话,就可以再次使用lambda表达式来查找质因数了代码IntConsumer allPrime

2021-07-31 13:46:11 152

原创 Java Stream来写算法11——分解质因数

总目录之前的文章写过如何求解出指定数字的全部约数,这篇文章更进一步,求解出全部的质因数,比如,求36的质因数:2、2、3、3与元素周期表类似,世间万物都是由周期表中的元素所组成,而所有的数字,也都是这些质因数,逐个累加而成求解质因数的过程,需要知道原数字与其中某个质因数相除的商,所以不适合用Stream流式方法,所以核心逻辑代码,还是使用的普通的for、while语句来完成的代码public class Factor { /* 求解全部因数,不要求每一个因数都是质数 */ In

2021-07-30 16:14:18 146

原创 Java Stream来写算法10——毕达哥拉斯Pythagoras——勾股定理数

总目录分析求解全部勾股数,需要知道求解两个数,m,nm, nm,n这两个数要满足如下条件序号条件内容1m>nm > nm>n2mmm与nnn互质(除了1,没有其他公约数)3mmm与nnn不能同时为奇数满足以上条件的mmm与nnn,就可以用以下公式计算出勾股数了x=m2−n2y=2∗m∗nz=m2+n2 x = m^{2} - n^{2}\\y = 2 * m * n\\z = m^{2} + n^{2}x=m2−n2y=2∗

2021-07-26 19:07:02 405

原创 Java Stream来写算法09——极简水仙花数写法

总目录代码// 判断传入的值是不是自幂数final IntPredicate isSelfPower = v -> { String str = String.valueOf(v); int len = str.length(); int sum = Arrays.stream(str.split("")) .mapToInt(e -> Double.valueOf(Math.pow(Integer.parseInt(e), len)).in

2021-07-21 16:04:37 108

原创 Java Stream来写算法——利用函数式接口写通用的性能测试代码

文章目录前言面对的问题解决方案代码:排序的辅助类代码:数组生成类代码:排序类前言写好了一种排序算法,想要测试一下其性能,代码无怪乎:先记录一下开始时间,然后执行算法,再记录一下结束时间,把结束时间与开始想减,就可以得出算法运行时间,通过这个时间值,可以估算一下算法运行效率。面对的问题写不同的算法,可能使用不同的类不同的类中的算法代码,比如排序方法名,也可能各不相同所以为了能统计不同算法的运行效率,可能需要对不同类,不同的方法,写大量重复代码,尤其是反复写记录开始、结束时间,以及两者相减值的代码

2021-07-17 12:59:33 108

原创 Java Stream来写算法08——公约数

总目录公约数查找方法与求约数的内容大体相同不同之处在于,如果是求两个数的公约数,需要把不同的数据剔除,保留相同的这个操作一看就类似于集合的求并集操作,所以使用Set数据结构就是非常自然的做法了再把制作思路唠叨一遍首先初始化两个Set实例,用来保存每个数自己的约数求约数的过程就是,从数字1开始,向这个数的开根号的值,逐个增加,增加过程中,看一下这个数是不是约数,如果是就将这个数加入到集合Set中由于求约数的范围只到开根号值处,所以还要约数的另一个约数也要增加进来,使用的方法,在求出每一个约数后

2021-07-10 14:10:36 114

原创 Java Stream来写算法07——使用一个数据流来查找孪生素数

总目录在上一篇文章中,使用了两个数据流来对应找出孪生素数,方法感觉有些取巧,所以就在想如何用一个数据流来查找到孪生素数?因为有把一切皆当作对象的角度,所以在解决这个想法时,自然而然地就会想到:孪生素数,本质上就是一个数据对。把这样的数据对作为一个对象,难道不是理所应当的吗?数对对象// 数对对象@Getter@Setter@ToString@AllArgsConstructor// 为了节约空间,注释写到一行里class TwinValue { private int firstVa

2021-07-08 10:36:50 179

原创 Java Stream来写算法——总目录

本系列文章主旨是通过Java Stream流的超简写法,来写一些只用很少的代码,但以前只能写很多for/while语句才能实现的算法。通过这些写法,来深刻理解Java Stream流的妙处,目前,写了几篇,可以实现很少代码来完成很复杂的运算,但是越写,越觉得不知道的内容的太多。比如,发现当前还是只会使用,Stream流背后深刻的原理还远远没有搞懂。所以这些文章只是起到鞭策自己深入去学习的作用,生命不息,(被迫)学习不止啊!目录第01篇:自幂数(水仙花数)第02篇:约数第03篇:线性查找第04.

2021-07-06 12:59:35 187

原创 Java Stream来写算法06——使用两个数据流查找孪生素数

这一系列的文章旨在探讨如何最小化使用循环语句,尽最大可能使用Java Stream来完成有趣的与数学相关的运算。之前的文章讲解了如何查找到素数,对素数而言,其中还有一个孪生素数的问题非常有趣,美籍中国数学家张益唐在前几年,在其五十多岁“高龄”完成了以往只能由二、三十岁年轻数学家才能完成的孪生素数性质证明,而震惊了世界。所谓“孪生素数”是指,类似3和5,11和13,17和19这样的,两个同时为素数,这两个数只相差2的数字对难点使用Java Stream来处理这个问题的一个难点就是,Java数据流是无

2021-07-05 10:27:22 261

原创 Java Stream来写算法05——筛选法找质数(素数)

今天使用的方法不再是上篇文章中的遍历法,遍历法非常清晰,非常容易理解,但架不住效率慢,所以介绍一下埃拉托斯特尼的筛选法,方法的本质是把在某一范围内素数的倍数去除掉,剩下的就是新的素数,比如想找出100以内的素数,只需要先找出10以内的素数,然后用10以内的素数与100以内全部的数进行除法运算,如果发现有一个可以整除,就筛掉这个数,经过这样一番操作,没被筛掉的数就是素数了。发点小感慨,这个埃拉托斯特尼Eratosthenes,是距今二千多年的希腊大师,最让人大跌眼镜的操作就是率先计算出地球的周长(不可思议的

2021-06-28 13:16:24 591

原创 Java Stream来写算法04——遍历找质数(素数)

除了数字111和这个数本身,没有其他约数的数,就是质数。另外规定1不是质数,而2是。关于这个1不是素数的规定,就是质因数分解时,可以有唯一的一种写法,这也是如下定理规定的将正整数分解成多个素数乘积的方法只有一种当然这不是本文章的重点,本篇文章主要是想把在指定范围内的素数全部求解出来,而且使用Stream类,以及不用for、while语句。private void getPrimeNumber() { int value = 100;// 在100以内查找全部素数 int[] ar

2021-06-26 18:43:22 511

原创 Java Stream来写算法03——线性查找

这是一个最简单的查找算法,就是从数组的第一个元素开始,依次遍历去查找每一个元素,如果发现元素内容符合,就返回元素所在的位置,否则就一直查找下去。使用Java数组这个数据结构代码非常好实现,但是今天要使用Stream类来实现,就需要把数组的生成,查找的过程,以及最终返回查找到的数据在数组的位置(也就是下标)值都用Stream有关方法来实现,这就需要用到一些特殊的方式。难点:Stream生成的流,是没有位置信息的流可以想象成挤在一起的无序队伍,把数组元素放入到流中,然后随机挑选一个元素,按照给定的逻辑来处

2021-06-24 13:36:31 172

原创 Java Stream来写算法02——约数

求给定数字nnn的约数,算法很简单,需要从111开始一直找到nnn,如果能整除就符合。分析但是上面的遍历算法,需要查找数据太多,所以需要优化,减少遍历数据的量,所以就有了如下优化。因为约数是成对出现的,所以简化查找范围可以减少到从111查找到n\sqrt{n}n​,这样遍历范围会大大缩小,但这个范围只会取到一半的约数。例如要求12的约数,从1开始,到12\sqrt{12}12​只取整数为3,计算得到的约数为1、2、3,但与这些约数对应的约数12、6、4取不到,但可以通过12/1、12/2、12/3

2021-06-19 11:48:46 137

原创 Java Stream来写算法01——自幂数(水仙花数)

自幂数,就是一个长度为nnn的自然数,等于自身各个位上数字的nnn次幂的和。例如十进制中:153=13+53+33153=1^3+5^3+3^3153=13+53+33,153是3位数,每一位数的3次幂的和,还是等于其自身,对于3位的自幂,还有一个特殊的名字“水仙花数”(Narcissistic Number)。求自幂数的算法非常简单,只要遍历区间内所有数字,算出每一位上数字的“数字长度”的幂之和,与原数比较,只要相等即为自幂数。如果用以往普通Java循环来写,for、while满屏横飞,各种代码结构

2021-06-17 19:18:50 869

原创 如何筛选电脑中有用的网卡(使用Java8中的Stream类实现)2021-01-03

用Java网络类开筛选网卡,可不是一件容易的事。如果任何条件都不加的话,使用NetworkInterface这个类,可以显示多达四十个的网络设备,直接崩溃了。可能有用的网卡就是一个或两个,这么多,是想显示自己多rich吗?说明:以下代码中使用的Lombok插件,log是用@slf4j注解来插入的实例如果用以往筛选正常网卡的代码大概最少也得有十行,代码如下: try { log.info("***************"); Enu

2021-01-03 12:32:53 189

原创 SpringBoot中如何分开写配置文件

在SpringBoot中都把配置信息写入到application.properties文件中,洋洋洒洒可以写几千行,找东西,修改都非常困难,如何把一些配置信息转移出来,另立文件呢?import lombok.Getter;import lombok.Setter;import org.springframework.boot.context.properties.ConfigurationPr...

2018-05-04 11:28:49 7439

原创 JavaFX使用资源文件的写法(一)

JavaFX是前端开发工具,可以全部用Java代码编写如同网页一样画界面,但这样很丑啊,代码中业务逻辑和界面控件混杂在一起,非常难看,所以有fxml文件来生成前端界面,如同HTML文件一样。而且还可以使用CSS文件来管理样式,但如何把css导入到fxml文件中呢?有以下一些方法:1.在fxml文件中的根结点上使用stylesheets标签导入stylesheets="/com/company/ja...

2018-04-19 20:34:59 3385

阅读源代码体会与源代码流程图

针对项目源代码进行分析,总结出优点不个人建议.

2011-11-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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