黑马程序员—Java基础学习笔记之数组排序(机选双色球)
来源:互联网 发布:买家如何修改淘宝评价 编辑:程序博客网 时间:2024/04/28 05:18
----------- android培训、java培训、java学习型技术博客、期待与您交流! -----------
数组
概念:同一种类型的数据的集合。其实数组就是一个容器。
数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
格式1:元素类型[] 数组名=new 元素类型[元素个数或数组长度];
例:int[] arr = new int[5]; int arr[] = new int[5],也可以这样写将[]放到数组名后面,不过不常用。
格式2:元素类型[] 数组名=new 元素类型[]{元素,元素,......};
例:int[] arr = new int[]{3,5,1,7}等同于int[] arr={3,5,1,7}
注意:格式中的数组名的数据类型是单独的数组类型(属于引用类型),和数组元素类型不一样哦,并非int类型等。
数组排序有:选择排序、冒泡排序、二分查找冒泡排序比选择排序效率高
最快的是希尔排序,三层循环加位运算哦,了解内容;系统自带函数Arrays.sort函数排序,开发中要是用它
下面总结下利用数组机选双色球
/** * 随机抽取算法 * 需求:机选双色球,前6红色后1蓝色 *01~33号 *6个号 作为红球 *01~16 *1个号 作为蓝球 */import java.util.*;class ShuangSeQiu {public static void main(String[] args) {System.out.println(Arrays.toString(randomBall()));//Arrays在java.util.*,里面}public static String[] randomBall(){String[] pool={"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33"};String[] balls=new String[7];//字符串型,因球是01,02,03......33boolean[] flags=new boolean[33];//数组默认元素值为“0”,布尔型为falseint i=0;Random r=new Random();//用到类库中函数Randomwhile(true){int index=r.nextInt(33);//随机的33个,指的是[0,33),即索引或下标从0到32,不包括33,刚好33个if(flags[index]==true){continue;//表示这号被选过了,跳过}balls[i++] = pool[index];//把没选过的存放到balls数组中,iflags[index] = true;if(i==6){break;//当找到6个时候停止}}Arrays.sort(balls,0,5);//Arrays.sort(canshu)系统对数组的排序算法,0,5,表示排序0-5,//int index=r.nextInt(16);//同上,[0,16)//String blueBall=pool[index];//蓝球就1个字符,所以只需随机一个放进blueBall中//balls[6]=blueBall;balls[6] = pool[r.nextInt(16)];//这是对上面三条的简化,把蓝球buleBall放入到balls中第7个,即下标6那return balls;}}//下面是对于flag[index]==false帮助理解//(flag[index]==false)==true;(falg[index]==true)==false//if(true)== if(!flag[index])==if((flag[index]==false))//if(false)==if(flag[index]) == if(falg[index]==true)
输出结果:
每次运行输出结果都是随机的
[03, 11, 19, 21, 33, 14, 16]
[03, 12, 14, 21, 33, 14, 02]
......
上面算法中需要注意几点:
1、双色球号码是字符串,不是数字,所以要用String类型。
2、Arrays.sort(balls,0,5);//Arrays.sort(arg)系统数组字符串排序算法,0,5,表示排序0-5,因为双球是前面6个红球,后面一个蓝球,所以只排序前6个数组元素。
3、打印是将数组转换成字符串,System.out.println(Arrays.toString(randomBall()));用到了Arrays.tostring()方法
----------- android培训、java培训、java学习型技术博客、期待与您交流! -----------
- 黑马程序员—Java基础学习笔记之数组排序(机选双色球)
- 黑马程序员—Java基础学习笔记之排序算法:选择排序&冒泡排序
- 黑马程序员------java学习笔记之数组基础
- 黑马程序员--- java基础学习之数组
- 黑马程序员-学习笔记之Java基础
- 黑马程序员-Java基础学习(数组)
- 黑马程序员—Java基础学习笔记之面向对象
- 黑马程序员—Java基础学习笔记之IO流
- 黑马程序员-----Java学习笔记之基础篇(一)
- 【黑马程序员】 学习笔记 - Java数组及排序算法
- 黑马程序员-C#编程基础之数组-学习笔记
- 黑马程序员 Java基础学习笔记3 循环和数组
- 黑马程序员——黑马学习日志之四 Java基础——数组
- 黑马程序员——Java基础---关于数组的排序
- 黑马程序员——Java基础学习笔记(一)
- 黑马程序员——Java基础学习笔记(二)
- 黑马程序员——Java基础学习笔记(三)
- 黑马程序员——Java基础学习笔记(四)
- Python可自动登录爬取图片的网络爬虫
- 阶乘计算
- CCSprite的创建方法
- AlertDialog.Builder弹出自定义Layout窗口
- CodeComnat-猎人三胞胎
- 黑马程序员—Java基础学习笔记之数组排序(机选双色球)
- 类名.class和getClass()区别
- pic16f887汇编秒表程序
- 【AOP】简介
- java之hashMap浅析
- 002_020 Python 在Python的搜索路径中寻找文件
- HDU 1730 Northcott Game
- MyEclipse配置SVN,从SVN中导出项目
- 蓝桥杯 - 算法训练 - ALGO - 4 结点选择 (经典树形DP)