JAVA代码:生成一个集合,自定义大小,100以内的随机整数 方法一:(Random类) package com.dawa.test; import java.util.ArrayList; import java.util.List; import java.util.Random; /** * @Title: RandomGen * @Author: 大娃 * @Date: 2019/12/12 13:33 * @Description: 生成一个集合,自定义大小,100以内的随机整数 */…
在本系列前两篇文章中,我们向大家展示了如何通过精炼的Java代码实现一个简单的区块链.包括生成块,验证块数据,广播通信等等,这一篇让我们聚焦在如何实现 PoW算法. 大家都无不惊呼比特币.以太坊及其他加密电子货币的持续狂热,特别是对于刚接触这个领域的新手,不断得听到张三李四通过 GPU “挖矿”而聚集价值数万乃至数百万加密电子货币.那么“挖矿”到底是什么? 它是如何工作的? 相信对于程序员来说,没有什么比自己动手实践一遍“挖矿”算法更好的学习办法了. 在这篇文章中,让我们一起逐个解读每一个问题,…
区块链是目前最热门的话题,广大读者都听说过比特币,或许还有智能合约,相信大家都非常想了解这一切是如何工作的.这篇文章就是帮助你使用 Java 语言来实现一个简单的区块链,用不到 120 行代码来揭示区块链的原理! “用不到120行 Java 代码就能实现一个自己的区块链!” 听起来不可思议吧?有什么能比开发一个自己的区块链更好的学习实践方法呢?那我们就一起来实践下! 因为我们是一家从事互联网金融的科技公司,所以我们采用虚拟资产金额作为这篇文章中的示例数据.大家可以先为自己想一个数字,后面我们会用…
在工作中发现有很多有序算法,较少见到一些可用的无序随机算法.无序随机算法的目的是让客户感觉每次都不一样,因为一直看一样的会审美疲劳哈. 在jdk自带一种CollectionUtils.shuffle<List<?> list> 使用默认随机源对指定列表进行置换,方便快捷.熟读JDK是如此的重要. 一下两种算法适用于一些特殊场合 特意写了两种算法.一种是利用set集合的特性,加上优化,因为如果list的个数不大,要在list中取的个数比较多的情况下,采用逆向生成算法,最佳适用于大数据…
现总结几种生成一个唯一值的方式 第一种:采用nanoTime() // 理论上存在重复的可能,可以在后面再加上一个随机字符串 Random r = new Random(); for (int i = 0; i < 100; i++) { String n = System.nanoTime() + "" + r.nextInt(); System.out.println(n); } 第二种:采用UUID类 // 第二种:采用UUID类 for (int i = 0; i <…
建议27:谨慎包装类型的大小比较 基本数据类型比较大小木有问题,不过其对应的包装类型大小比较就需要注意了.看如下代码: public class Client { public static void main(String[] args) { Integer a = new Integer(100); Integer b = new Integer(100); /* compareTo返回值:若a>b则返回1:若a==b则返回0:若a<b则返回-1 */ int result = a.com…
已经看完第一章的内容了吗,欢迎回来. 上一章我们介绍了关于怎么去编写自己的区块链,完成哈希和新块的校验.但是它只是在一个终端(结点)上跑.我们怎么样来连接其他结点以及贡献新的块呢,怎么样广播到其他结点告诉他们要更新区块了呢? 本章就是要告诉你这些. // 区块链的核心部分// 维护一个在启动时可以连接的对等节点列表.当一个完整的节点第一次启动时,它必须被自举(bootstrapped)到网络.// 自举过程完成后,节点向其对等节点发送一个包含其自身IP地址的addr消息.其对等的每个节点向它们自…
package com.loaderman.test; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; public class Test{ /** * 需求:将集合中的重复元素去掉 * * 分析: * 1,创建List集合存储若干个重复元素 * 2,单独定义方法去除重复 * 3,打印一下List集合 */ public static void main(String[] arg…
package day0603; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; public class Demo3 { //2015-06-03 public static void main(String[] args) { System.out.pri…