Java数组

  应用1:

    大乐透彩票模拟器:
    规则: 前区01-35中随机生成5个号码
    后区01-12中随机生成2个号码
    模拟操作,系统自动生成号码组合,并且按从小到大的顺序输出结果
    同时要求可以选择生成多少组(默认选项:生成1组,生成5组,生成10组)

上图为方法一,数组的综合应用,赋值,冒泡排序,和通过循环遍历;

  方法一:

  常规的方法:

    第一步:输出彩票前区的号码,用while循环,一个个随机数字输出,把一个数字赋值进数组第一个位置,因为要保证每一个数字的唯一性,所以之后的输出的数字要做出判断,如果与前面的数字相等,那么需要重新抽取随机数,将每个输出的数字与前面的数字相比,通过循环完成,这样通过判断和循环就能保证输出的每个数字的唯一性,并且将数字赋值给数组;

    第二部:通过冒泡法排序,将数组中每两个数字进行比较,将大的数字通过交换放进数组下标大的对应位置,这样通过数组长度-1次的冒泡排序就能将数字进行有序的排列

通过if判断简化循环判断过程,如果两个数字都是经过判断且没有交换位置,那么下次排序判断则不需要做这一重复步骤;

方法2:活用数组的下标

    数组的下标是具有唯一且连续性的,满足彩票1-35个数字不相同的要求,将数字的下标看做彩票球号,下标所对应的数字在初始化不赋值的情况下为零,我们可以把抽取的随机数与数组下标做判断,如果输出的随机数字与下表相等那么对相对应的的下标所对应的位置输入数值做为信号标记,所以有信号标记(就是数组值不为0的下标)即是随机数抽取到的数字,那么数组前5个有标记的数组下标即是随机数抽取的前五个前唯一的数字,这样只要遍历输出这个数组那么就能完成前区号码的抽取。因为数组的下标是连续的所以只要循环遍历数组,即可按顺序排序号码

    总结

    加深对数组的理解后,可以灵活运用其下标对相应的抽取数字类型进行计算,数组的下标具有连续且唯一的性质,而数组的数值可以用来作为信号标记,未赋值的数组初始值都为0,对满足需要条件的下标进行信号标记,通过循环判断输出有信号标记的数组就可以筛选所需要的数字。

Java数组的运用的更多相关文章

  1. Java 数组

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...

  2. 第5章 Java数组

    1.什么是数组 数组可以想象成一个巨大的盒子,这个盒子里面存放的是同一个数据类型的数据 例如:int[] scores = {78,68,94,93}; 2.如何使用Java中的数组 2.1申明数组 ...

  3. Java 数组基础

    数组 数组(Array):相同类型数据的集合. 定义数组 方式1(推荐,更能表明数组类型) type[] 变量名 = new type[数组中元素的个数]; 比如: int[] a = new int ...

  4. Java数组及其内存分配

    几乎所有的程序设计语言都支持数组.Java也不例外.当我们需要多个类型相同的变量的时候,就考虑定义一个数组.在Java中,数组变量是引用类型的变量,同时因为Java是典型的静态语言,因此它的数组也是静 ...

  5. [转载]Java数组扩容算法及Java对它的应用

    原文链接:http://www.cnblogs.com/gw811/archive/2012/10/07/2714252.html Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组 ...

  6. Java数组技巧攻略

      Java数组技巧攻略 0.  声明一个数组(Declare an array) String[] aArray = new String[5]; String[] bArray = {" ...

  7. Java数组扩容算法及Java对它的应用

    1)Java数组对象的大小是固定不变的,数组对象是不可扩容的.利用数组复制方法可以变通的实现数组扩容.System.arraycopy()可以复制数组.Arrays.copyOf()可以简便的创建数组 ...

  8. Java数组与vector互转

    Java数组与vector互转 /* Object[] object1 = null ; //数组定义 Vector<Object> object2;//Vector定义 object2 ...

  9. 比较Java数组,ArrayList,LinkedList,Vector 性能比较

    public class PerformanceTester { public static final int TIMES=100000; public static abstract class ...

  10. Java数组的12个常用方法

    以下是12个关于Java数组最常用的方法,它们是stackoverflow得票最高的问题. 声明一个数组 String[] aArray = new String[5]; String[] bArra ...

随机推荐

  1. swift-UITextfield控件的基本属性设置

    //1.初始化UITextField let userName=UITextField(frame: CGRectMake(0, 100, 100, 100)); //2.将文本框userName添加 ...

  2. [luogu1034] 矩形覆盖 (暴力)

    传送门 Description 给n(n<=50)个点(x,y),要求用k(1<=k<=4)个没有联系的矩形覆盖住求矩形最小面积 Solution 感觉不是很可做,结果看TJ后发现数 ...

  3. Hexo系列(二) 配置文件详解

    Hexo 是一款优秀的博客框架,在使用 Hexo 搭建一个属于自己的博客网站后,我们还需要对其进行配置,使得 Hexo 更能满足自己的需求 这里所说的配置文件,是位于站点根目录下的 _config.y ...

  4. PHP过滤html注释

    过滤html注释: 所谓过滤,不过是字符串的匹配与替换,这里我们用到的正则匹配替换函数preg_replace(reg,replace,string);,PHPer都清楚,这个函数的关键在于reg的精 ...

  5. 《团队名称》第八次团队作业:Alpha冲刺

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 代码敲不队 作业学习目标 (1)掌握软件测试基础技术(2)学习迭代式增量软件开发过程(Scrum) ...

  6. ZOJ - 3483 - Gaussian Prime

    先上题目: Gaussian Prime Time Limit: 3 Seconds      Memory Limit: 65536 KB In number theory, a Gaussian ...

  7. 格式化LInux后开机进入grub怎么办

    问题:格式化Linux系统盘之后,重启进入grub 1.grub 引导进入windows系统 进入grub grub>rootnoverify (hd0,1) [可以使用Tab键( 比如 roo ...

  8. CODEVS——T 1004 四子连棋

    http://codevs.cn/problem/1004/  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Descr ...

  9. 洛谷——P1507 NASA的食物计划

    https://www.luogu.org/problem/show?pid=1507#sub 题目背景 NASA(美国航空航天局)因为航天飞机的隔热瓦等其他安 全技术问题一直大伤脑筋,因此在各方压力 ...

  10. RestTemplate使用详解

    1.RestTemplate添加RequestHeader如content-type可通过httpclient设置 List<Header> headers = new ArrayList ...