黑马程序员技术交流社区

标题: 求大神帮助这道题的正确答案。。 [打印本页]

作者: 我认识你    时间: 2017-1-29 10:02
标题: 求大神帮助这道题的正确答案。。
1:定义一个静态的ArrayList<Integer> getList()方法,方法内完成:
1.1定义收集整数的集合list
1.2集合内的元素由7个整数组成,要求前6个元素是1~33(包含1和33)的随机数,第7个数字是1-16(包含1和16)之间的随机数(要求:前6个元素不能重复且需按从小到大排序,第7个数字不参与排序可以和前6个重复)
1.3将集合内的所有元素打印到控制台,格式是:“3,11,20,23,26,29,8”
1.4返回集合
2:定义main方法,方法内完成:
2.1:调用ArrayList<Integer> getList()方法获取集合list;
2.2:键盘依次录入7个整数,录入前有相应的提示:“请输入第几个整数”
2.3:如录入整数的大小和顺序与集合list中元素值的大小、角标顺序一致即该整数被猜中了
  2.4:打印一共猜对了几个数字  格式:“您猜对了几个数字”
作者: guyouzhong    时间: 2017-1-29 11:08
挺简单的嘛

作者: 宇轩H    时间: 2017-1-29 14:26
public class Test_List {
/**
        * 1:定义一个静态的ArrayList<Integer> getList()方法,方法内完成:
        *1.1定义收集整数的集合list
        *1.2集合内的元素由7个整数组成,要求前6个元素是1~33(包含1和33)的随机数,第7个数字是1-16(包含1和16)之间的随机数(要求:前6个元素不能重复且需按从小到大排序,第7个数字不参与排序可以和前6个重复)
        *1.3将集合内的所有元素打印到控制台,格式是:“3,11,20,23,26,29,8”
        *1.4返回集合
        *2:定义main方法,方法内完成:
        *2.1:调用ArrayList<Integer> getList()方法获取集合list;
        *2.2:键盘依次录入7个整数,录入前有相应的提示:“请输入第几个整数”
        *2.3:如录入整数的大小和顺序与集合list中元素值的大小、角标顺序一致即该整数被猜中了
        *2.4:打印一共猜对了几个数字  格式:“您猜对了几个数字”
*/
        public static void main(String[] args) {
                ArrayList<Integer> list = getList();
                Scanner sc = new Scanner(System.in);
                int num = 0;
                for(int i = 1;i<8;i++){
                        System.out.println("请输入第"+i+"个整数");
                        if(sc.nextInt() == list.get(i-1)){
                                num++;
                                System.out.println("猜中了");
                        };
                }
                System.out.println("您猜对了"+num+"个数字");
               
        }

public static ArrayList<Integer> getList() {
        ArrayList<Integer> list = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 6; i++) {
                list.add(r.nextInt(33)+1);
        }
        list = sort(list);
        list.add(r.nextInt(16)+1);
        for (int i = 0;i<list.size();i++) {
                if(i==list.size()-1){
                        System.out.println(list.get(i)+"");               
                }else{
                        System.out.print(list.get(i)+",");               
                }
               
        }
        return list;
}

private static ArrayList<Integer> sort(ArrayList<Integer> oldlist) {
//        冒泡排序
        ArrayList<Integer> list = oldlist;
//                int i,j;
                int size = list.size();
                Integer tem;
                for(int i=0;i<size-1;i++){
                        for(int j = 0;j<size-1;j++){
                                tem = list.get(j);
                                if(list.get(j).compareTo(list.get(j+1))>0){
                                        list.set(j, list.get(j+1));
                                        list.set(j+1,tem);
                                }else if(list.get(j).compareTo(list.get(j+1))==0){
                                        list.set(tem == 33 ? j:j+1,tem == 33 ? tem -1:tem +1 );
                                }
                        }
                }       
        return list;
}
}


作者: 愤怒的大飞机    时间: 2017-1-29 14:29
好像挺简单。。。

作者: 宇轩H    时间: 2017-1-29 14:41
宇轩H 发表于 2017-1-29 14:26
public class Test_List {
/**
        * 1:定义一个静态的ArrayList getList()方法,方法内完成:

好像有点小问题

作者: Mbs2016    时间: 2017-1-31 06:23
路过看看


作者: 愤怒的大飞机    时间: 2017-1-31 10:10
[AppleScript] 纯文本查看 复制代码
package test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
import java.util.Scanner;
public class Test {
        public static void main(String[] args) {
                ArrayList<Integer> guessNum = new ArrayList<>();
                Scanner sc = new Scanner(System.in);
                int index = 1;
                while (index <= 7) {
                        System.out.println("请输入第" + index + "个整数");
                        int num = sc.nextInt();
                        guessNum.add(num);
                        index++;
                }
                System.out.println("中奖号码为:");
                ArrayList<Integer> list = getList();
                int count = 0;
                for (int i = 0; i < list.size(); i++) {
                        if (list.get(i) == guessNum.get(i)) {
                                count++;
                        }
                }
                System.out.println("您一共猜对了" + count + "个数字");
        }

        private static ArrayList<Integer> getList() {
                Random rd = new Random();
                ArrayList<Integer> list = new ArrayList<>();
                while (list.size() <= 5) {
                        int num = rd.nextInt(33) + 1;
                        if (!(list.contains(num))) {
                                list.add(num);
                        }
                }
                Collections.sort(list);
                int lastNum = rd.nextInt(16) + 1;
                list.add(lastNum);
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < list.size(); i++) {
                        if (i == 6) {
                                sb.append(list.get(i));
                        } else {
                                sb.append(list.get(i) + ",");
                        }
                }
                System.out.println(sb);
                return list;
        }
}

//不爱写注释,挺简单的,没注释看也应该能看懂


作者: 愤怒的大飞机    时间: 2017-1-31 10:11
KyneZhk 发表于 2017-1-29 19:07
以下是按照需求的代码:
[mw_shl_code=applescript,true]public class Test {
        public static void main(Str ...

没仔细看,瞟了一眼看到了34就知道肯定不对了
作者: 愤怒的大飞机    时间: 2017-1-31 19:23
KyneZhk 发表于 2017-1-31 17:49
那我就只能呵呵了

你呵呵啥
作者: 13699475949    时间: 2017-1-31 21:39
好好学习,天天向上..
作者: newu    时间: 2017-2-1 09:10
我只是路过打酱油的





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