Scanner.Random.final关键字.ArrayList类的基本使用,完成案例随机不重复点名的程序

1、final关键字

final: 不可改变。 可以用于修饰类、 方法和变量。

类: 被修饰的类, 不能被继承。
方法: 被修饰的方法, 不能被重写。
变量: 被修饰的变量, 不能被重新赋值。

基本类型

基本类型的局部变量, 被final修饰后, 只能赋值一次, 不能再更改。

引用类型

引用类型的局部变量, 被final修饰后, 只能指向一个对象, 地址不能再更改。 但是不影响对象内部的成员变量值的修改:

2.Random()函数生成随机数介绍


在Java的API帮助文档中,总结了对这个Random()函数功能的描述:

1.java.util.Random类中实现的随机算法是伪随机,也就是有规则的随机,所谓有规则的就是在给定种(seed)的区间内随机生成数字;
2.相同种子数的Random对象,相同次数生成的随机数字是完全相同的(这个后边的代码示例有解释);
3.Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率均等;

Random()构造方法:

1. Random(): 创建一个新的随机数生成器。(根据你的系统时间生成一个对应的种子数)

2. Random(longseed): 使用单个 long种子创建一个新的随机数生成器。

​​​​​​​3.Scanner类

        Scanner类用于获取键盘输入(是一个基于正则表达式的文本扫描器),它可以从文件、字符串、输入流中解析出基本类型值和字符串值。Scanner类提供了多个构造器,不同的构造器可以接收文件、字符串和输入流作为数据源,用于从文件、字符串和输入流中解析数据。

Scanner类主要提供了两个方法来扫描输入:
1.hasNextXx():是否还有下一个输入项,其中Xxx可以是Int、Long等代表基本数据类型的字符串。如果只是判断是否包含下一个字符串,则直接使用hasNext()。

2.nextXxx():获取下一个输入项。Xxx的含义同上。

默认情况下,Scanner使用空白(包括空格、Tab空白和回车)作为多个输入项的分隔符。

4.什么是ArrayList类

        java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储 的元素。 ArrayList 中可不断添加元素,其大小也自动增长。

ArrayList使用步骤

        java.util.ArrayList :该类需要 import导入使后使用。 ,表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,我们使 用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。代码如下:

ArrayList<String>,ArrayList<Student>


查看构造方法
        public ArrayList() :构造一个内容为空的集合。


基本格式:

ArrayList<String> list = new ArrayList<String>();

查看成员方法

        public boolean add(E e) : 将指定的元素添加到此集合的尾部。 参数 E e ,在构造ArrayList对象时, 指定了什么数据类型,那么 add(E e) 方法中,只能添加什么数据 类型的对象。

6.ArrayList练习

  public static void main(String[] args) {
        //使用Arrays.asList创建一个固定数组
        List<String> list = Arrays.asList("叶枫", "饶政", "郭汶广", "王志刚", "时力强",
               "贠耀强", "齐东豪", "袁文涛", "孙啸聪", "李文彬", "孙赛欧", "曾毅", "付临",
                "王文龙", "朱海尧", "史艳红", "赵冉冉", "詹梦", "苏真娇", "张涛", "王浩",
                "刘发光", "王愉茜", "牛怡衡", "臧照生", "梁晓声", "孔顺达", "田野", "宫帅龙",
                "高亭", "张卓", "陈盼盼", "杨延欣", "李蒙惠", "瞿新成", "王婧源", "刘建豪",
                "彭习峰", "胡凯", "张武超", "李炳杰", "刘传", "焦泽国");
        //通过构建方法把固定数组的内容添加到新的数组
        ArrayList<String> names = new ArrayList<>(list);
        //获取键盘输入
        Scanner sz = new Scanner(System.in);
        //用于创建随机数
        Random xh = new Random();
        //采用while循环
 
        while (true) {

            System.out.println("开始点名请输入S/s");
            String impt = sz.next();
            if (impt.equals("S") || impt.equals("s")) {
                //随机数开启
                int zs = xh.nextInt(names.size());
                //获取集合中的内容
                System.out.println(zs);
                //输出
                names.remove(zs);
                //通过.remove()方法移除掉已出现的内容
            } else {
                System.out.println("点名结束");
            break;
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值