黑马程序员技术交流社区

标题: 分享一个双色球彩票的案例 [打印本页]

作者: 南无ice    时间: 2016-7-7 11:17
标题: 分享一个双色球彩票的案例
刚才收拾家的时候想到的,也想看看之前的内容忘记没,就随手写了一个。代码有点乱,大家凑活着看看,用到了集合,封装方法,字符串缓冲区,collection工具类。循环。判断这些,知识点比较全。也许大家有简便的方法。这个只是用来练一练平时的知识点,巩固基础来的。大家有什么需要帮忙的可以问我,我知道的就告诉你,
package wannao;

import java.awt.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Random;

import org.omg.PortableInterceptor.INACTIVE;

public class Demo01 {

        /**
         * 思路:定义2个ArrayList集合存放数字。红色球号码从1--33中选择;蓝色球号码从1--16中选择。
         *            从第一个数字中随机获取6个数字,每获取一个删除集合中的数字,保证获取的不重复。
         *          从第二个数字集合中随机获取1个数字,
         *         将2获取来的数字,全部存到 字符缓冲区中。
         *         最后进行打印。
         */
        public static void main(String[] args) {
                //1,定义前面的数字集合1-33
                ArrayList<Integer> list1 = new ArrayList<Integer>();
                //向数字集合1中添加需要的双色球数字
                Collections.addAll(list1, 1,2,3,4,5,6,07,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33);
                //定义后面的数字集合1-16
                ArrayList<Integer> list2 = new ArrayList<Integer>();
                //向数字集合2中添加后面的数字
                Collections.addAll(list2, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);       
                //定义缓冲区用来存放数字
                //StringBuffer b = new StringBuffer();
                //定义一个集合存放取出来的数字
                ArrayList<Integer> list3 = new ArrayList<Integer>();
                //进行前面7个数字的获取
                for (int i = 0; i < 6; i++) {
                        int getnumber = getnumber(list1);
                        //将取出的数字添加到新的集合当中
                        list3.add(getnumber);                       
                }
                //对这个集合进行排序
                Collections.sort(list3);
               
                //获取后面的一位
                int getnumber2 = getnumber(list2);
                list3.add(getnumber2);
                StringBuffer  b= new StringBuffer();
                b.append("[");
                //集合进行获取和打印
                for (int i = 0; i < list3.size(); i++) {
                        if(i<=4){
                                b.append(list3.get(i)+",");
                        }else
                        if(i==5){
                                b.append(list3.get(i)+"+");
                        }
                        if(i>5){
                                b.append(list3.get(i)+"]");
                        }
                }
                System.out.println("今天双色球奖池要开的号码是:");
                System.out.println(b);
        }
        private static int getnumber(ArrayList<Integer> list) {
                //随机获取前面集合中的数字,通过随机数当作角标进行获取
                //定义一个随机数
                Random do1 = new Random();
                //得到的随机数字,当作角标
                int number = do1.nextInt(list.size());
                //去集合中找到这个随机角标下的数字
                for (int i = 0; i < list.size(); i++) {
                        //获取角标下的元素
                        Integer getNumber = list.get(number);
                        //对元素进行删除
                        list.remove(number);
                        //将获取到的元素进行返回
                        return getNumber;               
                }
                return 0;       
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2