使用Scanner Random 和 ArrayList 完成随机不重复的点名

前面已经介绍过Scanner 和Random 这里不在说了

1 ArrayList 类

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

 使用步骤

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

ArrayList<String>,ArrayList<Student>

注意:泛型只能是引用类型,不能是基本类型。如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。
基本类型 包装类(引用类型,包装类都位于java.lang包下) 

创建基本格式

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

操作方式

public boolean add(E e);//向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。
//备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。
//但是对于其他集合(今后学习)来说,add添加动作不一定成功。
public E get(int index);//从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。
public E remove(int index);//从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素。
public int size();//获取集合的尺寸长度,返回值是集合中包含的元素个数。

 2 随机不重复点名程序


import java.util.*;

public class test03 {
    public static void main(String[] args) {
//        使用Arrays.asList创建一个固定数组
        List<String> list = Arrays.asList("张三", "李四", "王五", "赵六", "孙七", "陈八");
//        通过构造方法把固定数组的内容添加到新的数组
        ArrayList<String> names=new ArrayList<>(list);
//        创建键盘输入
        Scanner sc=new Scanner(System.in);
//       创建 随机数
        Random  a=new Random();
//        死循环
        while (true){
            System.out.println("请输入A/a 开始点名 ");
//            获取键盘输入的数据进行判断
            String as= sc.next();
            if (as.equals("A")||as.equals("a")){
//                随机集合长度 随机数为获取内容所需要的下标
                int indeax = a.nextInt(names.size());
//                通过下标获取集合中的内容
                String s = names.get(indeax);
//                打印
                System.out.println(s);
//                移出已经随机过的内容
                names.remove(indeax);
//                判断如果集合的长度为0退出循环
                if (names.size()==0){
                    System.out.println("点名结束");
                    break;
                }
            }else{
                System.out.println("点名结束");
                break;
            }


        }
    }
}

运行结果

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值