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. 26.bulk批量操作

    主要知识点 1.bulk语法 2.bulk使用时的注意事项 3.bulk size 对es性能的影响     一.bulk语法 每一个操作要两个json串(delete操作除外),每个json串占一行 ...

  2. C#中三种弹出信息窗口的方式

    弹出信息框,是浏览器客户端的事件.服务器没有弹出信息框的功能. 方法一: asp.net页面如果需要弹出信息框,则需要在前台页面上注册一个javascript脚本,使用alert方法.使用Client ...

  3. 洛谷—— P2014 选课

    https://www.luogu.org/problem/show?pid=2014 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课 ...

  4. nginx 、tomcat 集群配置、shiro Session 共享

    一.nginx.config 配置 #user nobody; worker_processes ; #error_log logs/error.log; #error_log logs/error. ...

  5. Hardware/Firmware/Software的区别

    Hardware: 硬件Firmware: 固化到硬件中的程序Software: 一般指驱动和应用软件,不用固化到硬件中的 ************************************** ...

  6. [GraphQL] Apollo React Mutation Component

    In this lesson I refactor a React component that utilizes a higher-order component for mutations to ...

  7. Maximal Rectangle [leetcode] 的三种思路

    第一种方法是利用DP.时间复杂度是 O(m * m * n) dp(i,j):矩阵中同一行以(i,j)结尾的所有为1的最长子串长度 代码例如以下: int maximalRectangle(vecto ...

  8. HDOJ1796 How many integers can you find(dfs+容斥)

    How many integers can you find Time Limit: 12000/5000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  9. 使用imgareaselect 辅助后台进行图片裁剪

    由于项目其中用到图片裁剪,本来能够不用到后台进行裁剪的,可是要兼容万恶的IE浏览器,所以不得不使用后台进行裁剪. 这次使用到imgareaselect 插件获取须要裁剪区域的坐标.再由后台进行裁剪操作 ...

  10. 对VC++的OO思考

    1. MFC借助C++的优势为Windows开发开辟了一片新天地,同时也借助 ApplicationWizzard使开发者摆脱离了那些每次都必写基本代码2. 借助ClassWizard和消息映射使开发 ...