第一次写博客,给大家贡献最近看java编程思想里边数据生成器和随机数生成器
来源:互联网 发布:记录键盘输入的软件 编辑:程序博客网 时间:2024/06/07 14:34
package chapter15;public interface Generator<T> {T next();}
package chapter16;import chapter15.Generator;public class CountingGenerator {public static class Boolean implements Generator<java.lang.Boolean>{private boolean value = false;@Overridepublic java.lang.Boolean next() {value = !value;return value;}}public static class Byte implements Generator<java.lang.Byte>{private byte value = 0;@Overridepublic java.lang.Byte next() {return value++;}}static char[] chars = ("abcdefghijklmnopqrestuvwxyz"+"ABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();public static class Character implements Generator<java.lang.Character>{private int index = -1;@Overridepublic java.lang.Character next(){index = (index +1) % chars.length;return chars[index];}}public static class String implements Generator<java.lang.String>{private int length = 7;Generator<java.lang.Character> cg = new Character();public String(){}public String(int length){this.length = length;}@Overridepublic java.lang.String next(){char[] buf = new char[length];for(int i = 0;i<length;i++){buf[i] = cg.next();}return new java.lang.String(buf);}public static class Short implements Generator<java.lang.Short>{private short value = 0;@Overridepublic java.lang.Short next(){return value++;}}public static class Integer implements Generator<java.lang.Integer>{private int value = 0;@Overridepublic java.lang.Integer next(){return value++;}}public static class Float implements Generator<java.lang.Float>{private float value = 0;public java.lang.Float next(){float result = value;value+= 1.0;return result;}}public static class Long implements Generator<java.lang.Long>{private long value = 0;public java.lang.Long next(){return value++;}}public static class Double implements Generator<java.lang.Double>{private double value = 0;public java.lang.Double next(){double result = value;value +=1.0;return value;}}}}
package chapter16;import chapter15.Generator;public class GeneratorTest {public static int size = 10;public static void test(Class<?> surroundingClass){for(Class<?> type : surroundingClass.getClasses()){System.out.print(type.getSimpleName() +": ");try{Generator<?> g = (Generator<?>)type.newInstance();for(int i = 0;i<size;i++){System.out.print(g.next() +" ");}System.out.println();} catch(Exception e){throw new RuntimeException(e);}}}public static void main(String[] args){test(CountingGenerator.class);}}
package chapter16;import java.util.Random;import chapter15.Generator;import chapter16.CountingGenerator.Character;public class RandomGenerator {private static Random r = new Random();public static class Boolean implements Generator<java.lang.Boolean>{@Overridepublic java.lang.Boolean next() {return r.nextBoolean();}}public static class Byte implements Generator<java.lang.Byte>{@Overridepublic java.lang.Byte next() {return (byte) r.nextInt();}}public static class Character implements Generator<java.lang.Character>{@Overridepublic java.lang.Character next(){return CountingGenerator.chars[r.nextInt(CountingGenerator.chars.length)];}}public static class String extends CountingGenerator.String{{cg = new Character();}public String(){}public String(int length){ super(length);};}public static class Short implements Generator<java.lang.Short>{@Overridepublic java.lang.Short next(){return (short)r.nextInt();}}public static class Integer implements Generator<java.lang.Integer>{private int mod = 10000;public Integer(){}public Integer(int modulo){mod = modulo;}@Overridepublic java.lang.Integer next(){return r.nextInt(mod);}}public static class Float implements Generator<java.lang.Float>{public java.lang.Float next(){int trimmed = Math.round(r.nextFloat() * 100);return ((float) trimmed) / 100;}}public static class Long implements Generator<java.lang.Long>{private int mod = 10000;public Long(){};public Long(int modulo){mod = modulo;}public java.lang.Long next(){return new java.lang.Long(r.nextInt(mod));}}public static class Double implements Generator<java.lang.Double>{public java.lang.Double next(){long trimmed = Math.round(r.nextDouble() * 100);return ((double)trimmed)/100;}}}
package chapter16;import java.util.Random;public class RandomGeneratorTest {public static void main(String[] args){GeneratorTest.test(RandomGenerator.class);}}
0 0
- 第一次写博客,给大家贡献最近看java编程思想里边数据生成器和随机数生成器
- 随机数 数据生成器
- 连连看,数据生成器
- 密码生成器+随机数生成器
- 随机数生成器
- 随机数生成器
- 随机数生成器
- 随机数生成器
- 随机数生成器
- 随机数生成器
- 随机数生成器
- 随机数生成器
- 随机数生成器
- 随机数生成器
- 随机数生成器
- 随机数生成器
- 《Java编程技巧1001条》355条:设置随机数生成器
- 第一次写博客,欢迎大家!
- Iptables防火墙配置
- My97DatePicker日历控制按日、按周和按月选择
- 手机配件信息
- php 字符串截取函数
- OCP-1Z0-051 第154题 集合操作MINUS,INTERSECT
- 第一次写博客,给大家贡献最近看java编程思想里边数据生成器和随机数生成器
- jAVA中静态初始化块、初始化块和构造方法的理解
- 两个Python web框架:Django & Tornado比较
- 学会转弯也是人生的智慧
- 代理服务器Squid3的配置
- GCC Makefile说明
- 黑马程序员-OC-构造方法
- 子集法NFA转DFA
- Scala从零开始:使用Intellij IDEA写hello world