Scanner Random ArrayList的基本使用并且完成一个不重复的点名程序

一.Scanner类的简介

简介:

Scanner类是java.util包中的一个类

作用:

常用于控制台的输入,当需要使用控制台输入时即可调用这个类

二.Scanner类的用法

使用方法:

1.首先需要构造一个Scanner类的对象

Scanner sc=new Scanner(System.in);

2.调用Scanner类对象sc的方法从输入流中获取你需要的输入

说明:

当创建了一个Scanner类对象之后,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给对象sc,若要获取需要的内容,调用sc的方法即可

三.Random的概念

此类的实例主要是用于生成为随机数

1.Random对象的生成

Random类包含两个构造方法,下面依次进行介绍:

1.public Random()

该构造方法使用一个和当前系统时间对应的相对时间有关的数字作为种子数,然后使用这个种子数构造Random对象。

2.public Random(long seed)

该构造方法可以通过制定一个种子数进行创建

示例代码:

Random r = new Random();

Random r1 = new Random(10);

2.Random类中的基本使用方法

1.random.random()

随机生成(0,1)之间的浮点数

2.random.randint(上限,下限)

随机生成在范围之内的整数,两个参数分别表示上限和下限

3.random.randrange( , , )

在指定范围内,按指定基数递增的集合中获得一个随机数,有三个参数,前两个参数代表范围上限和下限,第三个参数是递增增量,不包括下限,包括上限

使用方式如下:

random.randrange( 0,11,2)。

随机产生范围为10间隔为2的数。

注:这里输出(0,2,4,6,8,10)中一个

4.random.choice(list)

从序列中随机抽选一个数

5.random.shuffle(list)\n随机排序

代码案例:猜数字游戏

public static void main(String[] args) {
        //使用Scanner和Random完成一个猜数字的小游戏,随机生成一个人1-100之间的数字,
        //然后用户猜数字,大了提示数字猜大了,小了提示数字猜小了,猜对则统计猜的次数
        Scanner sc=new Scanner(System.in);
        Random random=new Random();
        int num=random.nextInt(100)+1; //生成0-99
        //统计猜对的次数
        int count=1;
        //使用死循环进行猜数字,直到猜对结束循环
        do {
            //用户输入的数字
            System.out.println("请输入你的数字:");
            int input= sc.nextInt();
            //判断猜的大小
            if(input>num){
                System.out.println("数字猜大了!");
            } else if (input<num) {
                System.out.println("数字猜小了!");
            }else {
                System.out.println("恭喜你猜对了!");
                break;
            }
           count++;
        }while (true);
        System.out.println("本次游戏共猜了:"+count+"次");
        //关闭资源
        sc.close();
    }

四.ArrayList的概念

ArrayList类是一个动态数组类型,可以随时从链表中添加或删除一个元素。ArrayList实现了List接口并且可以动态改变大小的。当我们不知道数据元素的个数时,就可使用ArrayList;如果知道数据元素个数,就可以直接用数组。

1.ArrayList类的基本用法

1.添加元素

 ArrayList <Integer> list = new ArrayList<>();
  list.add(1);                       //添加1
  

  for (int i = 0; i <= 10; i++) {
           list.add(i);              //添加0至10
 }

2.删除元素

list.remove(0);   //删除索引为0的元素

3.获取元素

int a=list.get(0);   //获取索引为0的元素

4.集合大小

int b=list.size();

5.替换元素

list.set(1, "10");          // 设置第2个元素为10

6.遍历方法

for (int i = 0; i < list.size(); i++) {
     System.out.println(list.get(i));
}

五.完成不重复的点名程序

public class text01 {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("1","2","3","4","5","6");
        ArrayList<String> names= new ArrayList<>(list);
        Random random= new Random();
        Scanner sc= new Scanner(System.in);

        while (true){
            if (names.size()==0){
                System.out.println("本次点名结束,请重新开始");
            }
            System.out.println("点名请输入Y/y");
            String input=sc.next();
            if (input.equals("Y")||input.equals("y")){
                int index=random.nextInt(names.size());
                String name=names.get(index);
                System.out.println(name+"---天选之人");
                names.remove(index);
            }else {
                System.out.println("点名抽查,欢迎下次使用");
                break;
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值